[ 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>