我也遇到过相同的问题,但是通过多次的试验,总算找到了解决方法,这里简单的说说解决思路,希望能对你有所帮助:
1.如果使用了需要实时更新的变量值,就不要使用ActionListener和ValueChangeListener接口,而是使用这二个Action的方法;也就是说事件处理要跟你的变量在同一个Bean里.这样就不会有不同Bean里传值的问题了.
2.使用Action方法的例子:
<h:commandButton id="group_name_del" value="#{bundle.del_group_label}" actionListener="#{GroupManage.GroupDel}"></h:commandButton>
//---GroupDel是ActionListener方法处理
<h:selectOneListbox id="group_name_list" size="20" value="#{GroupManage.group_name}" onchange="this.form.submit();" valueChangeListener="#{GroupManage.GroupMember}">
<f:selectItems value="#{GroupManage.group_name_list}"/>
</h:selectOneListbox>
//---GroupMember是ValueChangeListener方法处理
3.selectOneListbox组件里要加上onchange="this.form.submit();" 否则就不会重新渲染组件.
4.重新给变量付值时要记得先清除原有变量值.
5.取得组件值的方法:
UIOutput uo = (UIOutput)e.getComponent().findComponent("group_name_list");
String strSql = uo.getValue().toString();
其中group_name_list是组件的ID,就是每个组件的唯名称
1.如果使用了需要实时更新的变量值,就不要使用ActionListener和ValueChangeListener接口,而是使用这二个Action的方法;也就是说事件处理要跟你的变量在同一个Bean里.这样就不会有不同Bean里传值的问题了.
2.使用Action方法的例子:
<h:commandButton id="group_name_del" value="#{bundle.del_group_label}" actionListener="#{GroupManage.GroupDel}"></h:commandButton>
//---GroupDel是ActionListener方法处理
<h:selectOneListbox id="group_name_list" size="20" value="#{GroupManage.group_name}" onchange="this.form.submit();" valueChangeListener="#{GroupManage.GroupMember}">
<f:selectItems value="#{GroupManage.group_name_list}"/>
</h:selectOneListbox>
//---GroupMember是ValueChangeListener方法处理
3.selectOneListbox组件里要加上onchange="this.form.submit();" 否则就不会重新渲染组件.
4.重新给变量付值时要记得先清除原有变量值.
5.取得组件值的方法:
UIOutput uo = (UIOutput)e.getComponent().findComponent("group_name_list");
String strSql = uo.getValue().toString();
其中group_name_list是组件的ID,就是每个组件的唯名称
解决方案 »
- vml 怎么样转换成 xml
- sql的问题
- log4j配置问题,xml格式的
- [高手请进]WSAD5.1的诡异行为[50分]
- 用java写一个号码池
- 用jb9开发完了一个webapp[struts方面],怎么将它用tomcat来它发布
- 调db2存储过程接收不到返回值
- JDBC连哪些数据库速度快一点?
- Runtime.getRuntime().freeMemory()/maxMemory() 内存问题
- org.springframework.beans.factory.BeanDefinitionStoreException
- 有关JSTL的问题!在线等待!!!!!!!!!!!!!!
- hibernate映射时间问题(需要真正写过的)
1.如果使用了需要实时更新的变量值,就不要使用ActionListener和ValueChangeListener接口,而是使用这二个Action的方法;也就是说事件处理要跟你的变量在同一个Bean里.这样就不会有不同Bean里传值的问题了.
2.使用Action方法的例子:
<h:commandButton id="group_name_del" value="#{bundle.del_group_label}" actionListener="#{GroupManage.GroupDel}"></h:commandButton>
//---GroupDel是ActionListener方法处理
<h:selectOneListbox id="group_name_list" size="20" value="#{GroupManage.group_name}" onchange="this.form.submit();" valueChangeListener="#{GroupManage.GroupMember}">
<f:selectItems value="#{GroupManage.group_name_list}"/>
</h:selectOneListbox>
//---GroupMember是ValueChangeListener方法处理
3.selectOneListbox组件里要加上onchange="this.form.submit();" 否则就不会重新渲染组件.
4.重新给变量付值时要记得先清除原有变量值.
5.取得组件值的方法:
UIOutput uo = (UIOutput)e.getComponent().findComponent("group_name_list");
String strSql = uo.getValue().toString();
其中group_name_list是组件的ID,就是每个组件的唯名称