9

JSFでユーザーのメールアドレスがクリックされたことを確認するためにユーザーにメールで送信できるリンクをどのように作成しますか?つまり、リンクをクリックすると、アカウントがアクティブになります。

4

2 に答える 2

19

すでにJSF2.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?
    }

    // ...
}

次に、 http://example.com/activate.jsf?key=somelonggeneratedkeyによってアクセスされるJSFで

<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>
于 2010-07-21T01:34:43.293 に答える
6

次のようなページ(例では.jsp)を作成することで実装できます。

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

(これはファセット用です。jspの場合、属性はちょうどですbeforePhase)。次に、マネージドBeanのメソッドでFacesContext.getCurrentContext().getExternalContext().getParameterMap()、リクエストパターンを取得し、アクティベーションコードを取得するために使用します。これは、次のように渡されます。

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

于 2010-07-20T23:42:48.370 に答える