Ссылка для подтверждения Email в JSF - PullRequest
9 голосов
/ 21 июля 2010

Как сделать ссылку, по которой вы можете отправить пользователям электронное письмо, чтобы подтвердить, что их адрес электронной почты был выбран в JSF?то есть, как только они нажмут на ссылку, их учетная запись будет активирована.

Ответы [ 2 ]

17 голосов
/ 21 июля 2010

Если вы уже используете 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>
6 голосов
/ 21 июля 2010

Вы можете реализовать это, создав страницу (.jsp для ex), которая имеет:

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

(это для facelets; для jsp атрибут просто beforePhase).А затем в методе управляемого компонента используйте FacesContext.getCurrentContext().getExternalContext().getParameterMap() для получения запроса patameters и получения кода активации, который передается следующим образом:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...