Wie kann ich einbetten von java-code in jsf-Seite?
Habe ich:
Eine managed-bean namens "LoginBean".
Eine JSF-Seite namens "anmelden.xhtml"
In diesem jsf-Seite, ich habe ein login-Formular.
Innerhalb der managebean ich habe eine Funktion loginCheck.
public void loginCheck(){
if(logincorrect){
//set user session
}else{
//set lockout count session ++
}
}
Was ich tun soll in meiner jsf-Seite ist, dass, wenn der lock-out count Sitzung == 2 (bedeutet, dass Benutzer Fehler beim login richtig 2 mal, muss ich ein recaptcha-tag angezeigt werden.
<td>
<%
if(FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("numberOfLogins") == 2){
<p:captcha label="Captcha" requiredMessage="Oops, are you human?"/>
}
%>
Offenbar, das <% - tag funktioniert nicht. Über jede Hilfe aus der java/jsf-Experten.
Eine weitere schreckliche Idee. Scriptlet-code in JSPs ist jahrgang 1998 Zeug. Sie sollten dies nicht tun. Erfahren Sie, JSTL und nicht setzen scriptlets in Ihre Seiten.
Wer sind wir zu beurteilen? Ich dachte SO war die sachliche Basis? Warum die Fragen so sachlich, sondern Antworten und Kommentare sind rechthaberisch? lol.
Wer sind wir zu beurteilen? Ich dachte SO war die sachliche Basis? Warum die Fragen so sachlich, sondern Antworten und Kommentare sind rechthaberisch? lol.
InformationsquelleAutor Slay | 2012-09-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scriptlets (die PHP-wie
<% %>
Dinge) sind Teil der JSP, die veraltet seit JSF 2.0 in der Gunst seiner Nachfolger Facelets (XHTML). Facelets unterstützt nicht jede alternative zu scriptlets mehr. Mit scriptlets in JSP hat in fast allen Fällen führen schlecht konzipiert und schlecht wartbaren Codebasis. Vergessen Sie über Sie. Java-code gehört in fullworthy Java-Klassen. Nur bereiten Sie das Modell (einige Javabean-Klasse) in der Steuerung (eine JSF-backing bean-Klasse) und die Nutzung taglibs und EL (Expression Language, diese#{}
Dinge), um das Modell in der Ansicht.Ihren konkreten Anwendungsfall,
kann gelöst werden, in fullworthy JSF/EL wie folgt:
Dass
numberOfLogins
kann durch die Art und Weise viel besser gemacht werden, eine Eigenschaft einer JSF@SessionScoped @ManagedBean
als ein Attribut manuell platziert in der Sitzung anzeigen.Siehe auch:
Skriptlets sind nicht spezifisch für JSF. Sie sind spezifisch für die JSP-view-Technologie. Also, wenn du mit JSP, dann können Sie mit Skriptlets. Sie sind jedoch als schlechte Praxis und offiziell abgeraten. Siehe auch stackoverflow.com/questions/3177733/...
InformationsquelleAutor BalusC
Dies ist nicht, wie JSF arbeitet, zumindest nicht mit XHTML als der Darstellungsschicht statt JSP. (
<%
ist Teil der JSP, die man nicht mehr mit hier.) Der richtige Weg, dies zu tun ist mit managed beans. Alternativ können Sie mit Expression Language (EL) hier.Ich würde überprüfen Sie die "JavaServer Faces Technology" Kapitel von Oracle ' s Java EE tutorial für einige zusätzliche Unterstützung.
InformationsquelleAutor ziesemer