2016-06-17 5 views
1

JSP에서 Struts2 사용. 다음 코드는 잘 작동 : keyValue, message.string1 또는 message.string2의 값에 따라Struts2 사용 : getText()로 변수 설정

<s:if test="foo == bar"> 
    <s:set var="keyValue">message.string1</s:set> 
</s:if> 
<s:else> 
    <s:set var="keyValue">message.string2</s:set> 
</s:else> 

<s:text name="%{keyValue}"/> 

는 리소스 파일에서 고개 결과 HTML 페이지에 적절하게 출력된다.

<s:submit value="getText('message.string1')" ../> 

문제가 I '는 수있다 : 속성 값에 I18N 들어 Struts tag documentation 하단에서 설명한 바와

그러나 I 대신 I가 getText('...')를 사용할 필요는 스트럿 텍스트 태그를 사용할 수 없다 t %{keyValue} 위의 getText() 전화, 어떤 구문을 시도 : getText('%{keyValue}'), getText(%{keyValue}), getText(keyValue), getText('keyValue') 결의가 null로 평가 끝납니다. 이 부분이 구문 오류입니까 아니면 단순히 완료 할 수 없습니까?

<s:if test="foo == bar"> 
    <s:submit value="getText('message.string1')" ../> 
</s:if> 
<s:else> 
    <s:submit value="getText('message.string2')" ../> 
</s:else> 

을 ...하지만 난 가능하면 중복을 피하기 위해 싶습니다 I가있는 경우, 나는 각 아래에 제출 태그로 <s:if><s:else>를 사용하여 돌아갈 수 있습니다 알고 있습니다.

+0

시도'' – binoternary

답변

0

보통 keyValue이 작동하지만 항상 var 개의 태그 앞에 # 값을 추가하는 것이 좋습니다. 표현식 전체에 %{} 한 쌍만 사용해야합니다.

<s:submit value="%{getText(#keyValue)}" /> 
+0

'일반 키 값이 가장 cases'에서 작동하지만, 그래서 당신은 경우가 거기에있다 의미합니까 작동하지 않습니까? –

+0

@RomanC 예. 여기''는 작동하지 않습니다. –