Hello, JSF
はじめに
JSFを少し触ってみようと思ったのですが、もはやロストテクノロジーでどう始めるのかすらドキュメントを探すのが大変…
今回はかろうじてこちらを探し当てられました:
MojarraというのはWildFlyに組み込まれているJSF実装ですね。 今回はこちらを参考にしています。
また、上記ドキュメントからリンクされていたページにも説明がありました:
その他参考:
雛形作成
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4
でMavenプロジェクト作成。
デフォルトだとJava1.7を用いる設定になっているので11に変更:
pom.xml
... <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> ...
src/main/webapp/WEB-INF/web.xml
で指定されているServletのバージョンが2.3と古いので4.0に更新します。また、前述参考ページにある通り .xhtml
拡張子を FacesServlet
で処理するようにします:
src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
View, Model 実装
特に何も変わること無く 参考ページ にある通り src/main/java/com/example/Hello.java
, src/main/webapp/hello.xhtml
を作成。
ビルド&デプロイ
特に他のwarと変わりありません。
今回作成したソースをWildFlyにデプロイした場合、デフォルトだと次のURLへアクセスすれば参照できます: http://localhost:8080/jsf-sample/hello.xhtml