我正在尝试发送JSF 2.0中的电子邮件确认链接。正确的链接发送到用户的电子邮件没有任何问题,但我正在努力使链接重定向到正确的页面时,用户点击它。我正在尝试使用漂亮的面孔来进行URL映射。
确认链接类似于:
/confirm?param=1xfib3e
我用漂亮脸蛋写的代码:
<url-mapping id="confirm">
<pattern value="/confirm?param=#{ iid : emailConfirmation.param}" />
<action>#{emailConfirmation.confirmationLink}</action>
</url-mapping>我还尝试将{ iid : emailConfirmation.param}更改为{emailConfirmation.param}和{ param : emailConfirmation.param}
我试过了
<url-mapping id="confirm">
<pattern value="/confirm" />
<query-param name="param">#{emailConfirmation.param}</query-param>
<action>#{emailConfirmation.confirmationLink}</action>
</url-mapping>我还有一个RequestScoped bean,它看起来像这样:
@Named("emailConfirmation")
@RequestScoped
public class EmailConfirmation implements Serializable{
private String param;
....
public String confirmationLink() {
log("param value: " + param);
}
public String getParam() {
return param;
}
public void setParam(String param) {
this.param = param;
}
}当用户现在点击链接时,param值为null。这是如何引起的,我如何解决它?
发布于 2015-01-16 03:32:59
找到答案了。如果有人好奇的话,那是因为我导入了
javax.faces.bean
而不是
javax.enterprise.context.RequestScoped ...
而且,这是第二块有效的url映射代码,而不是第一块!
发布于 2015-01-16 20:27:18
不能在映射的<pattern>部分中使用查询参数。如果要为映射配置查询参数,请使用类似以下内容:
<url-mapping id="confirm">
<pattern value="/confirm" />
<query-param name="param">#{emailConfirmation.param}</query-param>
<action>#{emailConfirmation.confirmationLink}</action>
</url-mapping>请参见:
http://www.ocpsoft.org/docs/prettyfaces/3.3.3/en-US/html/Configuration.html#config.queryparams
https://stackoverflow.com/questions/27949977
复制相似问题