JPA + EJB + JSF による Web アプリケーション(その 5)

CSS を作成する

ちょっと間が開きましたが CSS の作成に進みます。Facelets と合わせて、JSF では最も難しい部分と言えます。何しろ Facelets のタグがどんな HTML タグに変換されるかわからないと CSS が書けないからです。

resources/css/customer/search.css

body { background-color : silver }

h1 {
    font-size : x-large;
    text-align : center
}

table { margin : auto }

p { text-align : center }

resources/css/product/search.css

.name { width : 15em }

後は menu.html にリダイレクトするダミーの index.jsp (ソースコードは省略)と menu.html と resources/css/menu.css を作成します。

menu.html

<!doctype html>
<html lang="ja">
<head>
  <title>JPA + EJB + JSF のサンプル</title>
  <meta charset="utf-8">
  <link rel="stylesheet" href="resources/css/menu.css" type="text/css">
</head>
<body>
  <h1>JPA + EJB + JSF のサンプル</h1>
  <ul>
    <li><a href="customer/list.jsf">顧客マスタ一覧</a></li>
    <li><a href="customer/search.jsf">顧客マスタ参照</a></li>
    <li><a href="product/search.jsf">商品マスタ検索</a></li>
  </ul>
</body>
</html>

リンクは作成した XHTML ファイルの拡張子を .jsf に変えたものになります。

resources/css/menu.css

ul { list-style-type: none }

最後に web.xml を掲載しておきます。

<?xml version="1.0"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">

  <display-name>JPASampleJSF</display-name>

  <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>jp.mydns.akanekodou.filter.EncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
    <init-param>
      <param-name>language</param-name>
      <param-value>ja</param-value>
    </init-param>
  </filter>
  
  <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

</web-app>

servletservlet-mapping のところは基本的にいじらない方が良いです。url-pattern だけは *.jsf に決め打ちしたいのでいじっていますが。filter は自前で用意することになります。

後は実際に動かしてみて、ちゃんと動いていることを確認してみてください。しかしこれはまだ JPA としては序の口です。RDBMS では当然のことながらテーブルの結合操作が不可避ですので、次回からはテーブルの結合に関する話をします。