2015-05-19 75 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

相关问题