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」を入力し、ボタンをクリックしてください。
フォーマットされたメッセージ、ユーザ入力からの “名前”、ボタンパラメータからの “国”を表示します。
ソースコードをダウンロードする
ダウンロード – リンク://wp-content/uploads/2010/11/JSF-2-Param-Example.zip[JSF-2-Param-Example.zip](10KB)
リファレンス
f:param JavaDoc]
リンク://タグ/jsf2/[jsf2]