0
當從a.xhtml
重定向到b.xhtml
時,我通過3
參數。如何讀取通過JSF從一個頁面重定向到另一個頁面的多個傳遞參數?
對於每個.xhtml頁面,我也有相應的aUiController.java和bUiController.java。
我們假設a.xhtml
只包含<p:commandButton>
,點擊後重定向到b.xhtml
。請參見下面的代碼:
<h:form>
<p:commandButton action="#{aUiController.goToPageB()}" value="Go to Page B" />
</h:form>
和控制器看起來是這樣的:
import java.io.Serializable;
@Named("aUiController")
public class AUiController implements Serializable {
private static final long serialVersionUID = 1L;
private long parameter1;
private int parameter2;
private String parameter3;
/*
* Constructor
*/
/*
* Getters & Setters
*/
public String goToPageB(){
this.parameter1 = 10;
this.parameter2 = 7;
this.parameter3 = "Hi!";
return "b?faces-redirect=true&includeViewParams=true¶meter1=" + getParameter1() + "¶meter2="
+ getParameter2() + "¶meter3=" + getParameter3();
}
}
在b.xhtml
我希望收到的數據,即a.xhtml
發送給我。在b.xhtml
代碼看起來像下面這樣:
<h:head>
<f:metadata>
<f:viewParam name="parameter1"
value="#{bUiController.parameter1}" />
<f:viewParam name="parameter2"
value="#{bUiController.parameter2}" />
<f:viewParam name="parameter3"
value="#{bUiController.parameter3}" />
</f:metadata>
</h:head>
<h:body>
<h:form>
<p:outputLabel>#{bUiController.parameter1}</p:outputLabel>
<p:outputLabel>#{bUiController.parameter2}</p:outputLabel>
<p:outputLabel>#{bUiController.parameter3}</p:outputLabel>
</h:form>
</h:body>
爲b.xhtml
UI控制如下:
import java.io.Serializable;
@Named("bUiController")
public class BUiController implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private long parameter1;
private int parameter2;
private String parameter3;
/*
* Constructor
*/
/*
* Getters & Setters
*/
}
爲了得到這些參數我使用<f:metadata>
和<f:viewParam>
,但不幸的是它不行。
如果您知道如何獲取從JSF讀取的參數,請告訴我。