2014-01-29 2 views
2

MySQL에서 DateTime 유형의 열을 포함하는 데이터베이스 테이블의 행 목록을 다음과 같이 반복합니다 (불완전한 코드 버전).Struts2를 사용하여 JSP에서 Joda-Time의 날짜 형식 지정

<s:iterator value="discounts" status="loopStatus"> 

    <joda:format var="formattedStartDate" 
       value="${discountStartDate}" 
       pattern="dd-MMM-yyyy HH:mm:ss" style="F-" 
       dateTimeZone="Asia/Kolkata"/> 

    <td><c:out value="${formattedStartDate}"/></td> 
</s:iterator> 

struts 태그와 함께 <joda:format>을 사용하여 날짜 - 시간을 포맷 할 수 있습니까?

내가 대체 할 수처럼 뭔가

<c:out value="${formattedStartDate}"/> 

<s:property value="%{formattedStartDate}" /> 

이 작동하지 않습니다. <s:property> 태그가없는 해당 모델에서 실제 속성이 discountStartDate이기 때문에 전체 목록을 반복하면 열은 비어 있습니다.


추가 정보 :

날짜의

포맷은 custom converter를 사용하여 내부적으로 수행하지만 난 jQuery를 날짜에 의해 허용되지 않습니다 dd-MMM-yyyy HH:mm:ss 형식으로 날짜를 (컨버터에 의해 수행되는) 표시 할됩니다 내가 사용하고있는 시간 선택 도구.

따라서 HTML 테이블의 지정된 형식으로 나열된 날짜는 행을 편집 할 때 날짜 선택 도구 (MM/dd/yyyy HH:mm:ss)에서 허용하는 형식이 지정되지 않으면 편집 할 수 없습니다.

dd-MMM-yyyy HH:mm:ss 형식을 허용하는 다른 날짜 시간 선택 도구를 사용하지 마십시오. 이러한 필요성은 다른 곳에서도 발생할 수 있습니다.


는 사실은 내가 <s:url> 내부 <s:param>에서 formattedStartDate의 값을 필요로하지만 언급하지 않은 단순화를 위해. 어쨌든 formattedStartDate의 값은 Struts 태그에 지정/할당되어야합니다 (가능한 경우).

답변

2

scope 속성을 <joda:format> 태그로 사용하지 않으면 기본 범위는 페이지 범위가됩니다. Struts2 태그에서 가져 오려면 페이지, 요청, 세션 및 응용 프로그램 범위를 검색 할 #attr을 사용하십시오.

<s:iterator value="discounts" status="loopStatus"> 
    <joda:format var="formattedStartDate" 
       value="${discountStartDate}" 
       pattern="dd-MMM-yyyy HH:mm:ss" style="F-" 
       dateTimeZone="Asia/Kolkata"/> 

    <td><s:property value="#attr.formattedStartDate" /></td> 
</s:iterator> 
관련 문제