Struts 2 논리에 해당하는 Struts 1 로직은 무엇입니까? 빈 태그입니까?Struts 2 논리에 해당하는 Struts 2 로직은 무엇입니까? 빈 태그입니까?
<logic:empty name="foo">
Foo is null or the empty string
</logic:empty>
감사합니다.
Struts 2 논리에 해당하는 Struts 1 로직은 무엇입니까? 빈 태그입니까?Struts 2 논리에 해당하는 Struts 2 로직은 무엇입니까? 빈 태그입니까?
<logic:empty name="foo">
Foo is null or the empty string
</logic:empty>
감사합니다.
struts2 태그가 없기 때문에 struts1 태그보다 OGNL의 가능성과 표현력이 더 뛰어납니다. 그러나 null과 빈 문자열 모두를 간결하게 검사 할 방법이없는 것처럼 보입니다.
다음 작품 : 널 (null)의 테스트 평등에 대한 테스트로 변경할 수 없습니다 수
<s:if test="(myString == null || myString.equals(''))">
myString is blank or null
</s:if>
<s:else>
The value is <s:property value="myString"/>
</s:else>
시험은, 짧은 circuting에 의존한다.
이 문제를 테스트해야하는 경우 디자인 문제가있을 수 있습니다. 적절한 유효성 검사를 수행하면 뷰가 의존하는 초기화되지 않은 객체가 없어야하지만 항상 예외가 있다고 가정합니다.
사원 수의 대답에 추가하려면 :
당신은 항상 특정 조건을 확인하기 위해 당신의 행동 방법을 추가 할 수 있습니다, 예를 들어 MyAction.isPropertyXEmpty()
<if test=...>
조건에 넣어 그것을
리콜이 Struts2의 특성 Struts보다 형식이 풍부하고 표현력이 풍부합니다. 다른 유형이 더 적합한 경우 문자열을 사용하지 마십시오. 그리고 널 (NULL). 제점을 피하기 위해 널이 아닌 값 (예 : 빈. 자열)으로 초기화 할 수 있습니다.
JSTL if/when/when/otherwise는 항상 좋은 선택입니다. –
스티븐의 코멘트에 확장하려면, 당신은
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
후 사용으로 가져올 수 있습니다
<c:if test="${empty myStruts2Var}">
또는
<c:if test="${not empty myStruts2Var}">
이 문제가 아직 열려 있습니까? – Quaternion