4
有人能告訴我如何捕獲JSF託管bean中從URI傳遞的參數嗎? 我有一個導航菜單鏈接到某些導航案例的所有節點。我有兩個類似的項目:收購產品和發行產品。它們具有相同的頁面,但有一個不同的參數:productType。我儘量只將它添加到URL中的「查看的-ID」元素像這樣設置:在JSF託管bean中獲取GET參數
<navigation-case>
<from-outcome>acquiring|products</from-outcome>
<to-view-id>/pages/products/list_products.jspx?productType=acquiring</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>issuing|products</from-outcome>
<to-view-id>/pages/products/list_products.jspx?productType=issuing</to-view-id>
</navigation-case>
但我無法從我的託管bean拿到這本「productType」。我試圖得到它通過FacesContext的是這樣的:
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("productType")
而且這樣的:
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getParameter("productType");
,我試圖將它作爲faces-config.xml中的託管bean的參數,然後得到它通過普通的二傳手:
<managed-bean>
<managed-bean-name>MbProducts</managed-bean-name>
<managed-bean-class>my.package.product.MbProducts</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>productType</property-name>
<value>#{param.productType}</value>
</managed-property>
</managed-bean>
...
public class MbProducts {
...
public void setProductType(String productType) {
this.productType = productType;
}
...
}
但這些方式都沒有幫助我。他們都返回null。我如何得到這個productType?或者我怎麼能通過其他方式?
謝謝,BalusC!在我的情況下,我也必須將.jspx更改爲.jsf,與 一樣,它向我展示了一個CompilationException :) –
mykola