JSF 2参数示例

在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 +其他组件

如果将“ f:param ”标签附加到其他组件(例如“ h:commandButton ”),则该参数将变为请求参数。

<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应用程序,用于展示f:param标记在“ h:commandButton ”和“ h:outputFormat ”组件中的使用。

1.托管豆

一个简单的托管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页面

两个用于演示的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>

3.演示

输入您的姓名,例如“ mkyong”,然后单击按钮。

jsf2-Param-Example-1

显示格式化消息,用户输入显示“名称”,按钮参数显示“国家”。

jsf2-Param-Example-2

下载源代码

下载它– JSF-2-Param-Example.zip (10KB)

参考

  1. JSF f:参数JavaDoc

翻译自: https://mkyong.com/jsf2/jsf-2-param-example/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值