我尝试从网址获取参数,但我无法做到。我在我的jsf
中这样做 <f:metadata>
<f:viewParam name="key" value="#{confirmationMB.key}" required="true" />
<f:viewAction action="#{confirmationMB.confirmer()}"/>
</f:metadata>
这在我的托管bean中:
@ManagedBean
@ViewScoped
public class confirmationMB {
private String key; public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public void confirmer(){
System.out.println("the key is "+key);
}
我的网址是这样的:
http://localhost:8080/exempler/validate_inscription.xhtml?key=124he
我总是 null 作为System.out中的值。有人可以帮我吗?
修改
当我在xhtml中尝试<h:outputText value="#{param['key']}" />
时,我可以获得密钥,但我不知道如何将其插入我的Bean !!
答案 0 :(得分:1)
我找到了解决问题的方法:我已将这些行添加到我的managedBean中,我现在可以从URL获取密钥
HttpServletRequest req = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
String val = (String)req.getParameter("key");
我把这个解决方案用于帮助那些可能遇到同样问题的人
答案 1 :(得分:0)
使用:
<f:metadata>
<f:viewParam name="key" value="#{confirmationMB.key}" />
<f:event type="preRenderView"
listener="#{confirmationMB.confirmer()}" />
</f:metadata>