代码之家  ›  专栏  ›  技术社区  ›  DD.

JSF中的确认链接电子邮件

  •  9
  • DD.  · 技术社区  · 14 年前

    如何建立一个链接,您可以通过电子邮件向用户确认他们的电子邮件地址是在JSF中单击的?也就是说,一旦他们点击链接,他们的账户就会被激活。

    2 回复  |  直到 14 年前
        1
  •  17
  •   BalusC    14 年前

    假设您已经在JSF 2.0上,您可以 @ManagedProperty @PostConstruct .

    @ManagedBean
    @RequestScoped
    public class Activation {
    
        @ManagedProperty(value="#{param.key}")
        private String key;
        private boolean valid;
    
        @PostConstruct
        public void init() {
            valid = check(key); // And auto-login if valid?
        }
    
        // ...
    }
    

    然后在JSF中,通过 http://example.com/activate.jsf?key=somelonggeneratedkey

    <h:panelGroup layout="block" rendered="#{activation.valid}">
       <p>Your account is successfully activated!</p>
       <p><h:link outcome="home">Go to home page</h:link></p>
    </h:panelGroup>
    <h:panelGroup layout="block" rendered="#{!activation.valid}">
       <p>Activation failed! Please enter your email address to try once again.</p> 
       <h:form>
           ...
       </h:form>
    </h:panelGroup>
    
        2
  •  6
  •   Bozho    14 年前

    您可以通过创建包含以下内容的页面(.jsp for ex)来实现它:

    <f:view beforePhaseListener="#{userActivationController.performActivation}">
    

    (这是针对facelets的;对于jsp,属性只是 beforePhase )然后,在托管bean的方法中使用 FacesContext.getCurrentContext().getExternalContext().getParameterMap() 要获取请求参数并获取激活代码,其传递方式如下:

    http://yoursite.com/activate.jsp?code=54gfd54tgdgfd