5月 11th, 2008at 0:14
Tags: Java
JSF1.1で簡単な画面作成
とりあえずJSFが動くだけのものを作成。
web.xml
Faces Servletに「/faces/*」をマッピング。「TOMCAT_HOME\webapps\apname\WEB-INF」下に配置する。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"> <web-app> <!-- JSF Faces Servlet --> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup> 1 </load-on-startup> </servlet> <!-- Faces Servlet Mapping --> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> </web-app>
faces-config.xml
画面遷移はないので雛型のみ。web.xmlと同じく。「TOMCAT_HOME\webapps\apname\WEB-INF」下に配置する。
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> <faces-config> </faces-config>
JSPファイル
input.jspというのを仮に作って、JSFのタグを記入する。「TOMCAT_HOME\webapps\apname」下に配置する。
input.jsp(バージョン1)
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %><%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %><html><body><f:view> <h2>hello</h2></f:view></body></html>
動作確認
以下のアドレスにアクセス。
http://localhost/apname/faces/input.jsp
helloと表示されればOK。
上のアドレスを見ると、通常は
http://localhost/apname/input.jsp
でアクセスしないといけないように思える。しかし、このアドレスでアクセスすると
javax.servlet.ServletException: Cannot find FacesContext
と怒られてしまう。どうもweb.xmlで設定したFaces Servlet Mappingを使わないとだめらしい。なので、「/faces」をはさんだアドレスじゃないといけない。
ということはデフォルトのページであるindex.jspにアクセスする場合も「/faces/index.jsp」となってしまう。できれば「/apname/」でアクセスしたい。こういう場合はindex.jspを以下のようにすればいい。
<jsp:forward page="faces/input.jsp" />
これによって「/apname/」で「/faces/input.jsp」にアクセスされるようになる。
I'm a software engineer who like travel to island in Japanese. Recently I am enjoying agile manager, coach, product owner for my work. The person grows like that.








