繁体   English   中英

如何将url参数传递给JSF?

[英]How to pass url parameters to JSF?

我还没有找到通过URL参数将参数传递给JSF页面的方法。

http://www.example.com/jsfApp.jsp?param1=value1&param2=value2

有人能指出我正确的方向吗?

在使用JSP时,我假设你使用的是JSF 1.x.

要使用查询参数创建链接,请使用h:outputLinkf:param

<h:outputLink value="page.jsf">
    <f:param name="param1" value="value1" />
    <f:param name="param2" value="value2" />
</h:outputLink>

可以借助EL动态设置该value

要在托管bean中自动设置它们,您需要在faces-config.xml中将每个定义为managed-property

<managed-bean>
    <managed-bean-name>bean</managed-bean-name>
    <managed-bean-class>com.example.Bean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
        <property-name>param1</property-name>
        <value>#{param.param1}</value>
    </managed-property>
    <managed-property>
        <property-name>param2</property-name>
        <value>#{param.param2}</value>
    </managed-property>
</managed-bean>

非线性EL变量#{param}引用了Servlet API中的请求参数映射。 bean当然应该同时具有param1param2属性以及相应的getter / setter。

如果您想在设置后直接执行某些逻辑,请使用@PostConstruct注释:

@PostConstruct
public void init() {
    doSomethingWith(param1, param2);
}

有关在JSF中传递参数和类型的更多提示,您可能会发现本文很有用。

JSF 2.x方法将在支持bean类中使用@ManagedProperty ,或在目标视图中使用<f:viewParam> 另请参阅此问题: ViewParam与@ManagedProperty(value =“#{param.id}”)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM