JSF中selectonemenu中前后台交互的问题和javascript访问h:form中控件的问题

先说第二个问题,在javascript中访问h:form 中的控件,不能直接getelementbyid(“id”),在JSF中,访问的格式为getelementbyid("formname:id"),如果有h:form 嵌套

比如

<h:form id="form1">

<h:form id="form2">

<h:outputtext id="test">

</h:form>

</h:form>

用了伪码,其访问的格式为getelementbyid("form1:form2:test"),用jsf的模板访问也遵循同样的规则

第一个问题,在除了commandbutton和commandlink这两个控件外。如果你要想在用户操作控件的时候执行后台bean中的方法,有两种方案

第一种,就是在用户动作的时候提交表单

比如

<h:selectonemenu οnchange="submit()" valuechangelistener="#{bean.fun()}">

<f:selectitems...>

</h:selectmenu>

这样,当你选择列表中的选项的时候,就会提交表单,就是触发JSF生命周期,就会产生消息以调用bean中的fun函数

好吧,提交表单的方式总是让人不满意,因为现在都是ajax局部刷新的天下了,第二种方法就是将控件ajax化

<f:ajax>

<h:selectonemune valuechangelistener="#{bean.fun()}">

<f:selectitems >

</h:selectonemenu>

</f:ajax>

这样,这个控件就被ajax化了,让有选择事件的时候,虽然没有提交表单,但是一样会触发生命周期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值