
[ JSTLのタグの中でJSFのmanaged beanの値を使用する連携のサンプル ]
■2005/10/20
Hepon
■環境:JSF1.1
MyFaces1.0.9
WindowsXP
ExadelStudioPro2.5.2
■まず、最初の画面でinputTextに値を入れます。
次の画面で、JSTLから最初の画面で値を入れたsession上の
beanのデータを参照して、処理を分岐しています。
■画面写真とソースをどうぞ。


★JsfAndJstlBean001.java
package demo;
/**
* このBeanの値を結果画面のJSTLで参照する。
*
* @author Hepon
* @version 2005/10/20/THU/
*/
public class JsfAndJstlBean001 {
//プロパティ
private String word001;
/**
* コンストラクタ
*/
public JsfAndJstlBean001() {
//初期値に0をセット
setWord001("0");
}
//*************************
//以下、セッター、ゲッター
//*************************
public String getWord001() {
return word001;
}
public void setWord001(String word001) {
this.word001 = word001;
}
}
★JsfAndJstl001.jsp
<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<HTML>
<HEAD>
<title>JSTLのタグの中でJSFのmanaged beanの値を使用する連携のサンプル</title>
</HEAD>
<body bgcolor="white">
<f:view>
<h:form id="JsfAndJstl001Form01">
<!-- ********************* -->
<h4><h:outputText id="text001" value="JSTLのタグの中でJSFのmanaged beanの値を使用する連携のサンプル"/></h1>
<h:outputText id="text002" value="2005/10/20/Thu/Hepon"/><br><br>
<h:outputText id="text003" value="0、1、2、のいずれかを入力すると、"/><br>
<h:outputText id="text004" value="結果画面で処理が分岐します"/><br><br>
<h:inputText id="word001" value="#{JsfAndJstlBean001.word001}" />
<h:commandButton id="button001" action="success" value="結果画面" />
<!-- ********************* -->
</h:form>
</f:view>
</body>
</HTML>
★result.jsp
<%@ page contentType="text/html;charset=Shift_JIS" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<!-- JSTLを使用する為に必要 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!-- idにはmaneged beanの設定で付けた名前を記述する -->
<jsp:useBean id="JsfAndJstlBean001" class="demo.JsfAndJstlBean001" scope="session" />
<HTML>
<HEAD>
<title>JSTLのタグの中でJSFのmanaged beanの値を使用する連携のサンプル</title>
</HEAD>
<body bgcolor="white">
<f:view>
<h:form id="resultForm01">
<!-- ********************* -->
<h:outputText id="text001" value="結果画面" /><br><br>
<!-- beanのプロパティのword001に0が入っていたら、というif文 -->
<c:if test="${JsfAndJstlBean001.word001 == 0}">
<h:outputText id="text002" value="0を選びましたね" />
</c:if>
<c:if test="${JsfAndJstlBean001.word001 == 1}">
<h:outputText id="text002" value="1を選びましたね" />
</c:if>
<c:if test="${JsfAndJstlBean001.word001 == 2}">
<h:outputText id="text002" value="2を選びましたね" />
</c:if>
<!-- ********************* -->
</h:form>
</f:view>
</body>
</HTML>
★index.jsp
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
</head>
<body>
<jsp:forward page="/pages/JsfAndJstl001.jsf" />
</body>
</html>
★faces-config.xml
<?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>
<managed-bean>
<managed-bean-name>JsfAndJstlBean001</managed-bean-name>
<managed-bean-class>demo.JsfAndJstlBean001</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/pages/JsfAndJstl001.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/pages/result.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<lifecycle/>
<application>
<locale-config/>
</application>
<factory/>
</faces-config>