[struts2] <s:if> 사용법3

프로그래밍/Framework 2011. 1. 3. 14:08 Posted by galad
<s:set var="isTvAppAdmin"><%=isTvAppAdmin%></s:set>

<s:if test="!{isTvAppAdmin}">
<s:if test="{isTvAppAdmin != 'true'}">
<s:if test="{isTvAppAdmin.equals('true')}">
<s:if test='{isTvAppAdmin != "true"}'>
<s:if test='%{#isTvAppAdmin.equals("false")}'>
...
...
</s:if>

isTvAppAdmin에 true를 넣고,
거짓이면 if문 내의 것이 실행되도록 했음.

test = !{...} 에서 {} 안의 것이 참 또는 거짓을 판별하는 조건이 되고, !는 NOT 임.

(수정)
위와 같은 경우, s:set 으로 isTvAppAdmin 에 넣은 값이 문자열 "true" 또는 "false" 라서 s:if 에서 boolean 으로 사용되지 않음.
즉, {문자열} 일 경우에는 무조건 참. 그래서 문자열 비교로 수정하였음.

(수정2)
문자열 비교이므로 equals 사용할 것. ㅡ.ㅡ;;;;

(수정3)
문자열 비교인데 equals 안됨.
수정1에서 안되었던 것은 문자열 비교이므로 ""로 묶어야 하는데 ''으로 묶어서 안되었던 것인 듯.

(수정4)
역시 equals로 해야만 함!.
단, s:set으로 밸류 스택에 넣었기 때문에 #변수명으로 불러와야만 함!
그리고 !{조건} 은 성립하지 않는 듯. 결과값이 생각과 다름.  <s:if test='%!{#isTvAppAdmin.equals("true")}'> 가 안되서 위와 같이 했음.