我们在JSF项目中使用Prettyfaces和Rewrite库。 在PrettyFaces通过URL中的查询参数设置这些属性的值之前,有没有一种方法可以重置bean属性(将它们设置为null)? 即我们可以在PrettyFaces设置值之前在bean上调用方法吗? ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在尝试在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。 这是怎么引起的,我该如何解决?
找到了答案。 如果有人好奇,那是因为我进口了
javax.faces.bean
代替
javax.enterprise.context.RequestScoped ....
另外,它是起作用的第二个URL映射代码块,而不是第一个!
您不能在映射的<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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.