JSF Ajax方法不会在bean中持久化变量

JSF Ajax方法不会在bean中持久化变量,ajax,forms,jsf,Ajax,Forms,Jsf,我有两种形式:一种是定义一些过滤器设置ajax,并使用sumbit按钮通过action=null重新加载页面;另一种是使用单个命令按钮执行ajax侦听器{bean.activate}: <h:form id="settingsForm"> <h:selectBooleanCheckbox value="#{bean.boolean1}" id="bool1"> <f:ajax event="click" render="@all" execute="

我有两种形式:一种是定义一些过滤器设置ajax,并使用sumbit按钮通过action=null重新加载页面;另一种是使用单个命令按钮执行ajax侦听器{bean.activate}:

<h:form id="settingsForm">
  <h:selectBooleanCheckbox value="#{bean.boolean1}" id="bool1">
      <f:ajax event="click" render="@all" execute="bool1"/>
  </h:selectBooleanCheckbox> 

  <ui:repeat var="step" value="#{bean.availableSteps}">
    <h:commandLink action="#{bean.navigate(step)}"> 
      <h:outputText value="#{step.name}" />
    </h:commandLink>
  </ui:repeat>
</h:form>

<h:form id="activateForm">
  <h:commandButton value="set activate bool and rerender" >
    <f:ajax event="click" execute="@form" render="@all" listener="#{bean.activate}"/>    
  </h:commandButton>
</h:form>

默认情况下是否应该只有一个表单?似乎两种形式——一种是大的,另一种是由ajax设置的变量——太多了……

代码在哪里?您忽略了显示实际的相关代码,您自己已经声明可能是问题的根源您的问题有点太冗长了。只需说明需求、代码和问题即可。应该是这样。至于您的具体问题,您的bean请求的作用域是否是有范围的,而不是视图的作用域?@BalusC-he有两种形式。@Kitex:没错。你的意思是?@BalusC这会改变他提交的数据吗?
boolean boolean1 = false; //set by form 1

boolean show = false;  //set by form 2 (ajax)  

public void activate(Ajaxbehaviour...){ show = true; }