2011-01-03 7 views

답변

7

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에 의존한다.

이 문제를 테스트해야하는 경우 디자인 문제가있을 수 있습니다. 적절한 유효성 검사를 수행하면 뷰가 의존하는 초기화되지 않은 객체가 없어야하지만 항상 예외가 있다고 가정합니다.

3

사원 수의 대답에 추가하려면 :

  1. 당신은 항상 특정 조건을 확인하기 위해 당신의 행동 방법을 추가 할 수 있습니다, 예를 들어 MyAction.isPropertyXEmpty()<if test=...> 조건에 넣어 그것을

  2. 리콜이 Struts2의 특성 Struts보다 형식이 풍부하고 표현력이 풍부합니다. 다른 유형이 더 적합한 경우 문자열을 사용하지 마십시오. 그리고 널 (NULL). 제점을 피하기 위해 널이 아닌 값 (예 : 빈. 자열)으로 초기화 할 수 있습니다.

+0

JSTL if/when/when/otherwise는 항상 좋은 선택입니다. –

1

스티븐의 코멘트에 확장하려면, 당신은

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

후 사용으로 가져올 수 있습니다

<c:if test="${empty myStruts2Var}"> 

또는

<c:if test="${not empty myStruts2Var}">