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