隐藏URL中的param值 - JSF应用程序

时间:2011-10-11 08:03:51

标签: jsf

<h:outputLink value="#{beanname.path}">
    <h:outputText value="Output label"></h:outputText>
    <f:param name name="name" value="tommy"/>
</h:outputLink>

http://127.0.0.1:7101/projectt/faces/index.jsp?name=tommy 我的网址带有参数值。我想将它隐藏在URL中并将其放入bean类中。

1 个答案:

答案 0 :(得分:4)

那么,你想要一个POST请求吗?请改用<h:commandLink>

<h:form>
    <h:commandLink value="Output label" action="#{beanname.outcome}">
        <f:param name name="name" value="tommy"/>
    </h:commandLink>
</h:form>

参数可以设置为

@ManagedProperty("#{param.name}")
private String name;

或者可以通过<f:setPropertyActionListener>代替:

<h:form>
    <h:commandLink value="Output label" action="#{beanname.outcome}">
        <f:setPropertyActionListener target="#{beanname.name}" value="tommy"/>
    </h:commandLink>
</h:form>

或当您已经使用支持Servlet 3.0 / EL 2.2的容器(Tomcat 7,Glassfish 3等)时,只需将其作为操作方法参数传递:

<h:form>
    <h:commandLink value="Output label" action="#{beanname.outcome('tommy')}" />
</h:form>

public String outcome(String name) {
    // ...

    return "index";
}