2012-12-27 22 views
5

durumunu denetlemek için userLoggedIn öğesini nasıl kontrol edebilirim? Yeniim ve aradığım çok şey var. Aptal bir hata olmalı.JSTL ve c: sınama koşulu ne zaman

index.jsp

<div id="sign-in"> 
    <c:choose> 
     <c:when test="${userLoggedIn == 1}"> 
      Welcome <c:out value="${loginID}" /> | Logout 
     </c:when> 
     <c:otherwise>Log-in</c:otherwise> 
    </c:choose> 
</div> 

bazı doğrulama servlet

int userLoggedIn = 0; 

if(loginID.equals("[email protected]") && password.equals("guest")){ 
    userLoggedIn = 1; 
    getServletContext().getRequestDispatcher("/index.jsp").forward(request, response); 
    //  out.println("login successful"); 

} else { 
    // getServletContext().getRequestDispatcher("/login.jsp").forward(request, response); 
    out.println("login failed"); 
} 
+0

gibi tüm özelliklerinin kolay erişim sağlar

<c:when test="${not empty user}"> 

ile

User user = userService.find(username, password); if (user != null) { request.getSession().setAttribute("user", user); response.sendRedirect("home"); } else { request.setAttribute("message", "Unknown login, please try again"); request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response); } 

? –

+1

userLoggedIn neden boolean değil? – BevynQ

cevap

7

Genellikle durumu için oturum kapsamı olan istenilen kapsamda bilgileri saklamak için ihtiyaç giriş yapmış kullanıcılara.

userLoggedIn = 1;'dan sonra aşağıdaki satırı ekleyin.

request.getSession().setAttribute("userLoggedIn", userLoggedIn); 

Temel olarak değişmeniz gereken tek şey budur. Beton bir sorun ile ilgili olmaksızın


, yaklaşım (şekilde BevynQ tarafından açıklanmıştır ve boolean) bu int yerine "ilkel" dir. Genellikle oturumda DB'den alınan User öğesinin tamamını depolarsınız. Örneğin. Sorun nedir

<p>Welcome, <c:out value="${user.name}" /></p> 
+0

Ayrıca aşağıdaki gibi JSTL erişim gerekir: - '$ {sessionScope.userLoggedIn}' –

+2

@Rohit: Bu gereksiz. Lütfen bir aklı JSP/Servlet öğreticisini okuyun. Bu yaklaşım, sayfadaki aynı özniteliğe sahip olmanız ya da kapsam isteğiniz varsa, bunların hepsinden sonra düz bir tasarım olacaktır. Ayrıca bkz. Http://stackoverflow.com/tags/el/info – BalusC

+0

@BalusC. Oh Evet. Özelliğin sırayla otomatik olarak aranacağını unuttum. –

İlgili konular