【问题标题】:Set confirmation link parameter in bean using PrettyFaces使用 PrettyFaces 在 bean 中设置确认链接参数
【发布时间】:2015-01-14 18:29:38
【问题描述】:

我正在尝试在 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;
       }

}

当用户现在点击链接时,参数值为空。这是如何引起的,我该如何解决?

【问题讨论】:

    标签: jsf-2 managed-bean url-mapping prettyfaces email-confirmation


    【解决方案1】:

    找到了答案。如果有人好奇,那是因为我已经导入了

    javax.faces.bean

    而不是

    javax.enterprise.context.RequestScoped ....

    此外,它是第二个 url 映射代码块,而不是第一个!

    【讨论】:

    • 啊,是的,那个老问题。这是因为有两个单独的 bean 容器。请注意,现在不推荐使用 javax.faces.bean :)
    • 好痛苦哈哈。从现在开始,我会更加小心地寻找它。
    【解决方案2】:

    您不能在映射的&lt;pattern&gt; 部分中使用查询参数。如果要为映射配置查询参数,请使用以下内容:

    <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

    【讨论】:

    • 没错,我应该补充一点,它是对我有用的第二个 URL 映射代码块,而不是第一个
    猜你喜欢
    • 2017-08-13
    • 2018-10-12
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2015-02-16
    • 2012-04-23
    • 2014-11-03
    • 2011-07-15
    相关资源
    最近更新 更多