我有一个 Spring + JSF 1.2 应用程序,它在订阅后向用户发送一封带有链接的电子邮件。该链接包含一个请求参数,例如:
www.myapp.com/register.jsf?var=1
如何在我的 JSF 支持 bean 中获取此请求参数?
目前尚不清楚您是使用 Spring 还是 JSF 来管理您的 bean,但在标准 JSF 1.2 中,您需要将其注册为准确<managed-property>
的请求参数名称<managed-bean>
在#{param.var}
哪里:var
<managed-bean>
...
<managed-property>
<property-name>var</property-name>
<value>#{param.var}</value>
</managed-property>
</managed-bean>
所以如果你的 bean 有一个属性
private String var; // +setter (getter is not mandatory)
然后您可以通过一种@PostConstruct
方法访问和处理它:
@PostConstruct
public void init() {
System.out.println("var is: " + var);
}
作为完全不同的替代方案,您也可以直接从请求参数中获取它:
String var = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("var");
// ...