2016-04-14 7 views
0

Je tente de mettre à jour le groupe de panneaux de composants après avoir cliqué sur commandLink, mais cela échoue. J'ai déjà essayé de nombreuses façons, mais rien n'y fait. S'il vous plaît, dites-moi, que dois-je faire pour mettre à jour panelgroup?Pourquoi le groupe de panneaux n'est-il pas mis à jour après avoir cliqué?

<h:panelGroup layout="block" id="content"> 
    <h:panelGroup layout="block" id="nav"> 
     <h:form id="itemsMenu"> 
      <h:commandLink value="View" update="workplace" actionListener="#{main.determineAction}"> 
       <f:param name="link" value="Viewing telephone book"/> 
      </h:commandLink> 
     </h:form> 
    </h:panelGroup> 
    <h:panelGroup id="workplace"> 
     <h:panelGroup layout="block" rendered="#{main.responseRendered}"> 
      <ui:include src="#{main.linkPage}"/> 
     </h:panelGroup> 
    </h:panelGroup> 
</h:panelGroup> 

Code Bean:

@ManagedBean(name = "main") 
@ViewScoped public class MainBean implements Serializable { 

private static final long serialVersionUID = 1L; 
private List<String>  listItemsMenu; 
private String   linkPage; 
private boolean   responseRendered = false; 

public boolean isResponseRendered() { 
    return responseRendered; 
} 

public void setResponseRendered(final boolean responseRendered) { 
    this.responseRendered = responseRendered; 
} 

public String getLinkPage() { 
    return linkPage; 
} 

public void setLinkPage(final String linkPage) { 
    this.linkPage = linkPage; 
} 

public void determineAction(final ActionEvent event) { 
    final Locale currentLocale = SessionBean.getCurrentLocale(); 
    final MessageManager messageManager = new MessageManager(currentLocale); 
    final Map<String, String> mapParameters = FacesContext.getCurrentInstance() 
     .getExternalContext().getRequestParameterMap(); 
    final String linkType = mapParameters.get(Constants.ATTRIBUTE_LINK_TYPE); 
    if (linkType.equals(messageManager.getProperty(Constants.MESSAGE_MENU_VIEWING))) { 
    linkPage = Constants.PAGE_VIEW; 
    } 
    ... 
    responseRendered = true; 
    } 
} 

Répondre

0

lien de commande bien Ok n'a pas une mise à jour d'attribut, ce qui devrait avoir jeté une erreur ici:

<h:commandLink value="View" update="workplace"> 

Je suppose que vous Vous voulez une solution ajax serait:

<h:commandLink value="View"> 
       <f:param name="link" value="Viewing telephone book"/> 
<f:ajax render="workplace" listener="#{main.determineAction}" /> 
      </h:commandLink>