2010-07-20 8 views
9

में पुष्टिकरण लिंक ईमेल कैसे आप एक लिंक बनाते हैं जिसे आप उपयोगकर्ताओं को ईमेल कर सकते हैं ताकि उनके ईमेल पते की पुष्टि जेएसएफ में की जा सके? यानी वे लिंक पर क्लिक करने के बाद उनके खाते को सक्रिय कर दिया जाएगा।जेएसएफ

उत्तर

17

, आप हड़पने सकता है @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> 
+0

द्वारा पहुँचा है जो यह मैं सिर्फ क्या जरूरत है। धन्यवाद +1 –

+0

त्वरित प्रश्न। कोड लंबे और अद्वितीय होने की जरूरत है। क्या जावा के पास एक लंबा अनूठा अनुक्रम उत्पन्न करने का तरीका है जैसे कि बलुस? मुझे नहीं लगता कि जावा यादृच्छिक संख्या जनरेटर गारंटी विशिष्टता –

+3

@ हैरी: [java.util.UUID'] का उपयोग करें (http://download.oracle.com/javase/6/docs/api/java/util/UUID.html) : 'स्ट्रिंग uuid = UUID.randomUUID()। ToString(); '। – BalusC

6

आप एक पृष्ठ (पूर्व के लिए .jsp) है कि बनाने के द्वारा इसे लागू कर सकते हैं:

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

(इस facelets के लिए है, विशेषता jsp के लिए सिर्फ beforePhase है)। और फिर, प्रबंधित सेम की विधि में FacesContext.getCurrentContext().getExternalContext().getParameterMap() का उपयोग अनुरोध patameters प्राप्त करने के लिए और सक्रियण कोड है, जो की तरह पारित कर दिया है मिलती है: मान लिया जाये कि आप पहले से ही JSF 2.0 पर हैं

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

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^