怎么用JSF的 做联动?

时间:2022-12-16 20:03:05
怎么实现:
 当第一个<h:selectOneMenu>变化后,第二个<h:selectOneMenu>的内容也跟着变?

7 个解决方案

#1


用ajax4jsf

#2


关注,我只用过js做的,感觉不好,比较麻烦.
也想知道有什么样好方法.

#3



<h:selectOneMenu id="selCodigoEstado" 
value="#{vendasBean.codigoEstado}" required="true"> 
<f:selectItems value="#{vendasBean.estadosItems}" /> 
<a4j:support event="onchange" 
action="#{vendasBean.popularListaCidades}" 
ajaxSingle="true" reRender="selCodigoCidade"/> 
</h:selectOneMenu> 

<h:selectOneMenu id="selCodigoCidade">
<f:selectItems value="#{vendasBean.cidadeItems}" /> 
</selectOneMenu>

#4


谢谢两位!

to wu07: 
 很想问问你的开发环境?
 我用的是Eclipse WTP2.0 + MyFaces1.2 + Tomcat6.0
 在Eclipse WTP2.0中不能同时用两种不同组JSF控件。如同时装SUN RI和MyFaces1.2就会出Error

to yztommyhc:
 因内容不是很多,我也想用JS来完成联动,但是不知在JSF如何调用JSF控件的名称?
 如
<SCRIPT Language=javaScript>
  function select_combo(obj, obj1) {
   alert(obj.options[0].value);  //对
   alert(obj1.options[0].value); //不出结果!!!
  }
</SCRIPT>
<h:selectOneMenu id="category" ...  onchange="select_combo(this, 'form1:dept')"
</h:selectOneMenu>
<h:selectOneMenu id="dept" ...>
</h:selectOneMenu>

onchange调用JS函数时,联动对象的控件名称怎么写?
我自己用了很多方法都取不到。


 

#5


我觉得思路是这样的:
把需要二级连动的数据都传到页面上,比如是一个江苏省所有的县,当然第一个是江苏省所有的市.
当你选择第一个,选中某个市以后,会触发onchange事件,就象你写的那样.
然后在这个触发的函数里面,你先判断刚才选择的市,然后根据县和市的对应规则,来提供第2个selectbox的内容.

#6


由于你提供的错误提示不多,所以我也不知道问题在什么地方.

#7


js的东西就是比较难调试的,慢慢摸索吧.

#1


用ajax4jsf

#2


关注,我只用过js做的,感觉不好,比较麻烦.
也想知道有什么样好方法.

#3



<h:selectOneMenu id="selCodigoEstado" 
value="#{vendasBean.codigoEstado}" required="true"> 
<f:selectItems value="#{vendasBean.estadosItems}" /> 
<a4j:support event="onchange" 
action="#{vendasBean.popularListaCidades}" 
ajaxSingle="true" reRender="selCodigoCidade"/> 
</h:selectOneMenu> 

<h:selectOneMenu id="selCodigoCidade">
<f:selectItems value="#{vendasBean.cidadeItems}" /> 
</selectOneMenu>

#4


谢谢两位!

to wu07: 
 很想问问你的开发环境?
 我用的是Eclipse WTP2.0 + MyFaces1.2 + Tomcat6.0
 在Eclipse WTP2.0中不能同时用两种不同组JSF控件。如同时装SUN RI和MyFaces1.2就会出Error

to yztommyhc:
 因内容不是很多,我也想用JS来完成联动,但是不知在JSF如何调用JSF控件的名称?
 如
<SCRIPT Language=javaScript>
  function select_combo(obj, obj1) {
   alert(obj.options[0].value);  //对
   alert(obj1.options[0].value); //不出结果!!!
  }
</SCRIPT>
<h:selectOneMenu id="category" ...  onchange="select_combo(this, 'form1:dept')"
</h:selectOneMenu>
<h:selectOneMenu id="dept" ...>
</h:selectOneMenu>

onchange调用JS函数时,联动对象的控件名称怎么写?
我自己用了很多方法都取不到。


 

#5


我觉得思路是这样的:
把需要二级连动的数据都传到页面上,比如是一个江苏省所有的县,当然第一个是江苏省所有的市.
当你选择第一个,选中某个市以后,会触发onchange事件,就象你写的那样.
然后在这个触发的函数里面,你先判断刚才选择的市,然后根据县和市的对应规则,来提供第2个selectbox的内容.

#6


由于你提供的错误提示不多,所以我也不知道问题在什么地方.

#7


js的东西就是比较难调试的,慢慢摸索吧.