JSF无法从URL获取参数

时间:2014-12-11 19:58:42

标签: jsf-2

我尝试从网址获取参数,但我无法做到。我在我的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 !!

2 个答案:

答案 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>