JSF 2のparamの例

JSFでは、「 f:param 」タグを使用すると、パラメータをコンポーネントに渡すことができますが、動作はコンポーネントのタイプによって異なります。例えば、

1. f:param h:outputFormat

" f:param "タグを " h:outputFormat "にアタッチする場合、パラメータはプレースホルダを指定します。

<h:outputFormat value="Hello,{0}. You are from {1}.">
    <f:param value="JSF User"/>
    <f:param value="China"/>
</h:outputFormat>

ここに出力があります - "Hello JSF User。あなたは中国出身です** "。

2. f:paramその他のコンポーネント

" h:commandButton "のような他のコンポーネントに " f:param "タグを付けると、パラメータは要求パラメータに変わります。

<h:commandButton id="submitButton"
    value="Submit - US" action="#{user.outcome}">
    <f:param name="country" value="China"/>
</h:commandButton>

ユーザーBeanでは、次のようにパラメータ値を取得できます。

    Map<String,String> params =
        FacesContext.getExternalContext().getRequestParameterMap();

    String countrry = params.get("country");

JSF f:paramの例

JSF 2.0アプリケーションは、「 h:commandButton 」と「 h:outputFormat 」の両方のコンポーネントで f:param タグの使用方法を示しています。

1.マネージドBean

単純なマネージドBean。

UserBean.java

package com.mkyong;

import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

@ManagedBean(name="user")
@SessionScoped
public class UserBean{

    public String name;
    public String country;

    public String outcome(){

        FacesContext fc = FacesContext.getCurrentInstance();
        this.country = getCountryParam(fc);

        return "result";
    }

   //get value from "f:param"
    public String getCountryParam(FacesContext fc){

        Map<String,String> params = fc.getExternalContext().getRequestParameterMap();
        return params.get("country");

    }

   //getter and setter methods

}

2. JSFページ

デモンストレーションのための2つのJSFページ。

default.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      >

    <h:body>

    <h1>JSF 2 param example</h1>

      <h:form id="form">

    Enter your name :
    <h:inputText size="10" value="#{user.name}"/>

    <br/><br/>

    <h:commandButton id="submitButton"
        value="Submit - US" action="#{user.outcome}">

        <f:param name="country" value="United States"/>

    </h:commandButton>

      </h:form>

    </h:body>
</html>

result.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      >

    <h:body>

    <h1>JSF 2 param example</h1>

     <h2>
     <h:outputFormat value="Hello,{0}. You are from {1}.">
     <f:param value="#{user.name}"/>
     <f:param value="#{user.country}"/>
     </h:outputFormat>
     </h2>

    </h:body>

</html>

デモ

あなたの名前、例えば「mkyong」を入力し、ボタンをクリックしてください。

jsf2-Param-Example-1、title = "jsf2-Param-Example-1"、width = 640、height = 403

フォーマットされたメッセージ、ユーザ入力からの "名前"、ボタンパラメータからの "国"を表示します。

jsf2-Param-Example-2、title = "jsf2-Param-Example-2"、width = 640、height = 403

ソースコードをダウンロードする

ダウンロード - リンク://wp-content/uploads/2010/11/JSF-2-Param-Example.zip[JSF-2-Param-Example.zip](10KB)

リファレンス

f:param JavaDoc]

リンク://タグ/jsf2/[jsf2]