2015-05-19 38 views
1

我在JSF/PrimeFaces中獲取URL參數時遇到了問題。獲取託管bean中的查詢字符串參數

,對於我的所有網頁,做工精細,除了一個地方我不能得到URL PARAM

我的網址是這樣的

/path/to/my/page?id=99 

我bean類是annoted與

@Named 
@ViewRequest 

我這樣做在@PostConstruct方法

Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); 
String id = params.get("id"); 

但PARAMS不包含id

而是在PARAMS地圖具有URL PARAM的名字,我有這樣的

[0]javax.faces.partial.render=... 
[1]javax.faces.partial.execute=... 
[2]j_idt20=... 
[3]javax.faces.ViewState=... 

其他值是否有人對這個問題的想法?

感謝

回答

1

在JSF頁面中,您可以處理類似

page.xhtml

<f:metadata> 
    <f:viewParam name="id" value="#{bean.id}"/> 
</f:metadata> 

@Named 
@ViewScoped 
public class Bean implements Serializable { 

    private String id; 

    // getter and setter 
} 
+0

感謝YOUT建議的PARAMS。我嘗試過,但是當我以另一種方式得到它時,它的值是空的。 – metos

+0

您是否嘗試過在setter中設置斷點,無論參數是否真的由'viewParam'設置? – Smutje

+0

當我在setter中放置斷點時,我發現setter被良好的調用,並且在param setter之前調用PostConstruct方法。這就是爲什麼我不能在PostContruct 中獲得價值我嘗試了許多不同的修改,並且它現在可以工作。 我可以得到param拋出我的第一個方法,當viewparam聲明在page.xhtml 我不知道爲什麼。 – metos

相關問題