2013-08-29 1 views
0

У меня возникают проблемы с формой, которая отображается с помощью booleanButtom на PrimeFaces 3.5 . Форма отображается как ожидалось, но когда я фиксирую значения поля, вы получаете нулевое значение. Код Паг: `форма, отображаемая на сетях, не вызывает управляющий bean-компонент

<p:panelGrid> 
    <p:row> 
      <p:column> 
       <h:form id="city"> 
        <p:panelGrid columns="2"> 
         <h:outputText value="Name: "/> 
         <p:inputText label="Name" value="#{managedBean.city.name}"/> 

         <h:outputText value="Status: "/> 
         <p:selectBooleanButton value="#{managedBean.city.status}" onLabel="Enable" offLabel="Disable"> 
            <p:ajax listener="#{managedBean.changeStatusCity()}"/> 
         </p:selectBooleanButton> 

         <h:outputText value="Add neighborhood?"/> 
         <p:selectBooleanButton id="btAddNeighborhood" value="#{managedBean.addNeighborCity}" onLabel="Cancel" offLabel="Yes"> 
           <p:ajax update=":addNeighbor" listener="#{managedBean.addNeighborCity()}"/> 
         </p:selectBooleanButton> 
        </p:panelGrid> 
       </h:form> 
     </p:column> 
    </p:row> 

    <p:row> 
      <p:column> 
       <h:form id="addNeighbor"> 
        <p:panel header="Neighborhood" rendered="#{managedBean.addNeighborCity}"> 
         <p:panelGrid columns="2"> 
           <h:outputText value="Name: "/> 
           <p:inputText label="Name" value="#{managedBean.neighborhood.name}"/> 
           <h:outputText value="Status: "/> 
           <p:selectBooleanButton value="#{managedBean.neighborhood.status}" onLabel="Enable" offLabel="Disable" onIcon="ui-icon-check" offIcon="ui-icon-close"> 
            <p:ajax listener="#{managedBean.changeStatusNeighbor()}"/> 
           </p:selectBooleanButton> 
         </p:panelGrid> 
        </p:panel> 
       </h:form> 

       <h:form id="formBt"> 
         <p:commandButton id="bt" value="Add" actionListener="#{managedBean.saveNeighborCity()}" update=":addNeighbor, :city:btAddNeighborhood"/> 
       </h:form> 
      </p:column> 
    </p:row> 
</p:panelGrid>` 

И управлять боба

public void addNeighborCity(){ 
    if(addNeighborCity){ 
     neighborhood = new Neighborhood(); 
     neighborhood .setStatus(true); 
     neighborhood .setStringStatus("Enable"); 
    }else{ 
     neighborhood = null; 
    } 
} 

public void changeStatusNeighbor() { 
    if (neighborhood .isStatus()) { 
     neighborhood .setStringStatus("Enable"); 
    } else { 
     neighborhood .setStringStatus("Disable"); 
    } 
} 

public void saveNeighborCity(){ 
     city.getNeighborhoods().add(neighborhood); 
     neighborhood = null; 
     addNeighborCity = false; 
} 

Все входные внутри формы, что было вынесено не передает информацию управления боба и когда я ставлю кнопка, которая добавляет соседа в список города, кнопка перестает работать и больше не вызывает управляющий bean-компонент. Кто-то знает, что я делаю неправильно или что происходит. Я использую Primefaces3.5, GlassFish4.0 и JSF2.2

+0

Симптомы типичны для компонента, который для определенной цели неправильно помещен в область запроса, а не для просмотра области. Просто, чтобы исключить очевидное, это правда? В противном случае эта проблема, скорее всего, будет зачислена в комбинацию PrimeFaces 3.5 и JSF 2.2. – BalusC

ответ

0

Поскольку вы не опубликовали весь управляемый компонент, я предполагаю, что вы используете область управления по умолчанию для управляемого компонента: @RequestScoped. В этом случае вы должны использовать @ViewScoped.

0

Я решил проблему, я использовал стеклянную рыбку 4, и она заставляет jsf2.2, даже когда вы помещаете jsf2.1 в наш проект, тогда я перешел на 3-мерную стеклянную фату, и все работает отлично, спасибо за ответы, и я использую @ScopeSession.

Смежные вопросы