2016-10-09 4 views
1

런타임 식을 지원하지 않는 텍스트 태그 이름, 내 코드 :Struts2 - S : 나는 현재 <code>year</code> 내에서 텍스트를 인쇄해야

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
<%@ taglib prefix="s" uri="/struts-tags" %> 

<jsp:useBean id="now" class="java.util.Date" /> 
<fmt:formatDate var="year" value="${now}" pattern="y" /> 
<p> 
    <s:text name="%{getText('app.footer', {${year}})}" /> 
</p> 

오류가

"이름"이다는 않습니다 런타임 표현식을 지원하지 않습니다.

조치에서 추가 클래스 또는 변수를 만들지 않고 어떻게 정렬 할 수 있습니까?

+0

디버깅 도움말 ("이 코드가 작동하지 않는 이유는 무엇입니까?")에는 원하는 동작, 특정 문제 또는 오류 및 질문 자체에서이를 재현하는 데 필요한 가장 짧은 코드가 포함되어야합니다. 분명한 문제 성명이없는 질문은 다른 독자에게 유용하지 않습니다. See : 최소한의 완전하고 검증 가능한 예제를 만드는 방법. –

+1

''올해의 텍스트를 인쇄해야합니다. ','오류입니다'... 무엇이 빠졌습니까? – Emaborsa

답변

3

Struts2 태그 만 사용하면 fmt 태그를 사용할 필요가 없습니다.

<s:bean var="date" name="java.util.Date" /> 
<s:date var="year" name="#date" format="y" /> 
<p> 
    <s:text name="app.footer"> 
     <s:param value="#year" /> 
    </s:text> 
</p> 

S2 태그 안에 ${}을 사용할 수 없습니다. <s:text> 태그는 I18n 텍스트 메시지를 렌더링하므로 내부에 getText 메쏘드를 사용할 필요가 없습니다.

+0

올해를 연결하지 않기 때문에 getText를 사용해야합니다 ... year는 getText의 매개 변수입니다. Emaborsa

+1

@Emaborsa 완료. ''내부에' '태그를 사용하십시오. –