私は、ajax=false の commandButton が Primefaces モバイルで機能していないことに気付きました。ユーザーがボタンを押したときに別の URL に移動するために非 ajax 呼び出しを行いたい。ajax=false を削除すると、Bean マネージャー クラスにヒットしますが、別のページに移動しません。これに対する修正は何ですか?
ui:composition template="/mobile/templates/masterLayout.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:cc="http://java.sun.com/jsf/composite/composite"
xmlns:pm="http://primefaces.org/mobile">
<ui:define name="center">
<pm:page title="Test">
<pm:view id="main">
<pm:header title="Test" swatch="b" />
<pm:content>
<p:messages />
<h:form id="mainForm" prependId="false">
<p:inputText id="title" value="#{bean.title}"
required="true" label="title" />
<p:inputText id="wbUserName"
value="#{bean.creator}" required="true"
label="User name" />
<p:commandButton id="dialogButton" value="Create" ajax="false"
actionListener="#{bean.create}">
</p:commandButton>
</h:form>
</pm:content>
</pm:view>
</pm:page>
</ui:composition>
更新:
p:commandButton を h:commandButton に置き換え、マネージド Bean 関数をヒットできましたが、想定される URL に転送していません。
bean.class
public String create(){
return "pretty:newPage";
}
pretty-config.xml
<url-mapping id="newPage">
<pattern value="/test/"/>
<view-id value="/views/test.jsf"/>
</url-mapping>