사용자가 로그인했는지 여부에 따라 특정 요소가 켜지거나 꺼지는 index.jsp
페이지가 있습니다. Struts2의 문자열 비교 <s:if> 태그
<head>
<s:set var="accessType" value="GUEST" />
<s:if test="#session.containsKey('currentAccessType')">
<s:set var="accessType" value="#session.currentAccessType" />
</s:if>
</head>
<body>
<nav>
<s:if test="#accessType.equals('GUEST')">
<ul>
<li><a href="index.jsp">Home</a></li>
<li><a href="#">Login</a></li>
<li><a href="http://www.mywebsite.com" target="_blank">Main Site</a></li>
</ul>
</s:if>
<s:else>
<ul>
<li><a href="index.jsp">Home</a></li>
<li><a href="#">Control Panel</a></li>
<li><a href="#">Logout</a></li>
<li><a href="http://www.mywebsite.com" target="_blank">Main Site</a></li>
</ul>
</s:else>
</nav>
</body>
accessType
GUEST
로 설정됩니다. 그러나 사용자가 아직 로그인하지 않은 경우에도 else-block을 입력합니다.
문자열 비교에서 오류가 발생 했습니까?
UPDATE :
<head>
<s:set var="accessType" value="GUEST" />
<!-- removed session code for testing -->
</head>
<body>
<nav>
<s:if test="#accessType.equals('GUEST')">
<ul>
<li><a href="index.jsp">Home</a></li>
<li><a href="#">Login</a></li>
<li><a href="http://www.mywebsite.com" target="_blank">Main Site</a></li>
</ul>
</s:if>
<s:else>
<ul>
<li><a href="index.jsp">Home</a></li>
<li><a href="#">Control Panel</a></li>
<li><a href="#">Logout</a></li>
<li><a href="http://www.mywebsite.com" target="_blank">Main Site</a></li>
</ul>
</s:else>
</nav>
<br />
Access type is <s:property value="#accessType" />.
</body>
문제 :
- 조건이
<s:else>
를 입력 난 그냥 볼 수있는 index.jsp에서의 세션 부분을 제거하고 지금은 다음과 같습니다
블록. - 액세스 유형이 인쇄되지 않습니다 (설정되지 않음).
오류는 'NullPointerException' 일 수 있습니다. 그런 다음's : else' 태그를 입력하십시오. 변수를 세션에 어떻게 넣었는지 보여줍니다. –
안녕하세요 @RomanC, 귀하의 검토를 위해 게시물을 편집했습니다. – silver