Primefaces p:commandLink不转发到面对结果页面

时间:2014-04-11 13:57:37

标签: primefaces

当我使用p:commandLink时,结果页面不会被转发,但是h:commandLink可以正常工作。

<p:dataTable id="resultTable"  var="row" value="#{userFinder.list}">
    <p:column headerText="#{i18n.user_name}">
        <p:commandLink id="selectUserLink" **actionListener**="#{userSelector.edit}" value="#{row.userName}" ajax="false"/>
    </p:column>
</p:dataTable>

VS

<p:dataTable id="resultTable"  var="row" value="#{userFinder.list}">
    <p:column headerText="#{i18n.user_name}">
        <h:commandLink id="selectUserLink" action="#{userSelector.edit}" value="#{row.userName}"/>
    </p:column>
</p:dataTable>

UserSelectorImpl.java

@ConversationScoped
@Named("userSelector")
public class UserSelectorImpl extends AbstractEntitySelector<User> implements
     IUserSelector
{
    ...
    @Override
    public Class<? extends ViewConfig> edit()
    {
        conversation.begin();
        .. do some stuff 
        return Pages.AdminPages.UserMaintenance.EditUser.class;
    }
    ...

}

Pages.java

@Page(navigation = REDIRECT)
public interface Pages extends ViewConfig
{
   ...
   @Secured(AdminAccessDecisionVoter.class)
   public interface AdminPages extends Pages
   {
      public @Page class AdminPage implements AdminPages {}

      interface UserMaintenance extends AdminPages
      {
          public @Page class EditUser implements UserMaintenance {}
          ...
      }
   }
}

我加倍检查,我有/webapp/pages/adminPages/userMaintenance/editUser.xhtml

提前致谢, d。

1 个答案:

答案 0 :(得分:1)

ActionListener方法不会转发/重定向到结果。你应该使用action =“”

<p:commandLink id="selectUserLink" action="#{userSelector.edit}" value="#{row.userName}" ajax="false"/>