jsf 获取表单的两种方法

 第一种:

1.如在你的页面中有 <input   type= "hidden "   name= "classid "   value= "1 ">
注意要写在form中,并且要用name而不是id.
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get( "classid ")可以得到。  

2.
<h:form   id= "f ">
<input   type= "hidden "   id= "classid "   value= "1 ">
</h:form>
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get( "f:classid ")可以得到。

3.使用JSF自带的控件,则和2是一样的访问方法

以上方法就可以了,写id的时候,jsf会把form的id加进去 变成 formId:componentId 的格式

第二种:

就是通过findComponent方法获得控件实例,然后通过getValue方法获得值
HtmlInputText    text = (HtmlInputText) this.findComponent(this.FORM + ":"+ ENERGY_COMSUPTION_PREFIX + id);
String value = text.getValue().toString();

 public UIComponent findComponent(String name) {

  // 不能使用静态变量view保持当前的viewroot,因为每次操作之后的viewroot都是不一样的
  ViewRoot view = FacesContext.getCurrentInstance().getViewRoot();

  return view.findComponent(name);
 }

需要注意的是 不能使用静态变量view保持当前的viewroot,因为每次操作之后的viewroot都是不一样的。

对比以上两种方法,第一种简单方便,但只适合于取值操作。第二种可操控的范围和能力更大,不仅可以取值还可以设置和获得所有属性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值