你如何制作一个链接,你可以通过电子邮件发送给用户以确认他们的电子邮件地址在 JSF 中被点击?即,一旦他们点击链接,他们的帐户就会被激活。
问问题
6256 次
2 回答
19
假设您已经在 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?
}
// ...
}
然后在由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}">
(这适用于 facelets;对于 jsp,属性只是beforePhase
)。然后,在托管 bean 的方法中使用FacesContext.getCurrentContext().getExternalContext().getParameterMap()
获取请求参数并获取激活码,传递如下:
于 2010-07-20T23:42:48.370 回答