不知道为什么你的h:commandButton 标签不用action而用actionlistener属性,按照常规的做法这样应该是没有问题的,或者你可以换一下t标签。希望可以帮到你

解决方案 »

  1.   

    好像是jsf得一个bug,不知道是那个版本的,你吧back bean的作用范围设置为session中可解决该问题,不过一般不提倡使用session你可以在h:dataTable 把值binding起来, 不用value设定,这样也可以解决该问题.
      

  2.   

    这个跟jsf的绑定机制有关系,你需要每次在get方法里面初始化一次页面绑定的值。比如说:
    <h:selectOneMenu value="#{<h:selectOneMenu value="#{ModifyUser.power}" id="power">
    <f:selectItem itemLabel="普通用户" itemValue="0" />
    <f:selectItem itemLabel="管理员" itemValue="5" />
    <f:selectItem itemLabel="超级用户" itemValue="10" />
    </h:selectOneMenu> }" id="power">
    <f:selectItem itemLabel="普通用户" itemValue="0" />
    <f:selectItem itemLabel="管理员" itemValue="5" />
    <f:selectItem itemLabel="超级用户" itemValue="10" />
    </h:selectOneMenu> 1,这段:value="#{ModifyUser.power}
    里面的power属性一定要走get,set方法,而且最好是String数组。2,每一条数据放一个SelectOneMenu后就使得commandLink和commandButton失效有可能是你在点击链接或者按钮回到后台的时候,某个bean的属性值无法初始化 ,返回的是为null。所以jsf就验证失败,而且验证失败的话就会不执行后面的链接或者按钮事件,你应该去检查下你后台的bean属性的值以及页面绑定的值,看下是否有问题,你可以在页面一个个值去试下,看下究竟是哪个值(也就是bean的属性)的问题。
      

  3.   

    这段:value="#{ModifyUser.power} 
    里面的power属性一定要走get,set方法,而且最好是String数组。 搞定了 我后台绑定的是一个int 型的值,谢谢1