2013-01-03 4 views
2

양식 제출에 ModelDriven과 함께 Struts2를 사용하고 있습니다.Struts 2 및 ModelDriven : jQuery 플러그인 대 Dojo 플러그인

Dojo의 datetimepicker 태그를 사용하고 해당 태그에서 날짜를 선택하면 ModelDriven 오브젝트에 채워진 양식 값으로 양식이 올바르게 제출됩니다.

그러나 형식의 jQuery 태그가 선택되고 날짜가 선택되면 ModelDriven의 개체는 null 값을 갖습니다. 날짜가 선택되지 않고 양식이 제출되면 제대로 작동합니다.

문제를 해결하지 못한 설정이 있습니까?

I had included following jar for JQuery.

JQuery와는 :

<sx:datepicker name="startDate" id="startDate" label="" cssStyle="width:275px; " 
minDate="0" displayFormat="dd/mm/y" changeMonth="true" changeYear="true" 
readonly="true" value="%{startDate}"/> 
+0

전체 JSP 및 동작 코드를 표시하십시오. –

답변

0

나는

name="startDate" 

이 ...

name="yourmodel.startDate" 

로 변경 더 나은 도움을 더 많은 코드를 표시해야한다는 확신
+3

ModelDriven을 사용하지 않을 때. 모델을 값 스택 맨 위로 밀어 넣습니다. – Quaternion

+0

네 @ Quaternion 네 말이 맞아. 나는 너의 의견을 살아 남기 위해 지우지 않을거야 :) –

0

Struts는 RFC3 339 (yyyy-MM-dd'T'HH : mm : ss)을 따르는 로케일 독립적 인 값으로 서버에 값을 보낼 것으로 기대합니다. 이는 기본 dojo 태그 (현재 사용되지 않음)가 제공하는 것입니다. http://struts.apache.org/2.0.12/docs/datetimepicker.html

보낼 수있는 곳 : 2013-01-03 나머지는 선택 사항입니다.

jQuery Datepicker는 mm/dd/yy를 사용합니다. 이 형식을 struts2가 기대하는 것으로 변경하려면 프리젠 테이션에 사용 된 defaultFormat을 변경하거나 제출 중에 제시된 형식으로 입력 된 내용을 변경하는 altFormat을 설정하십시오 (따라서 "mm/dd/yy"가 마음에 들면 altFormat을 "yyyy- mm-dd "를 입력하고 원하는 효과를 얻으십시오). 당신은 쉽게 jQuery를 볼이 제공 바와 같이

http://jqueryui.com/datepicker/#date-formats

http://api.jqueryui.com/datepicker/

는 태그와 함께 할 방법을 ... 모르겠어요. 가능하면 태그 특정 기술을 사용하여이 정보를 가져 와서 다른 대답으로 확장 할 수 있습니다.

1

readonly="true"을 제거하면 모든 것이 정상적으로 작동합니다.

readonly 기본값이 false 인 경우 입력이 읽기 전용인지 여부를 알려줍니다.

+0

+1 너무 분명해. – Quaternion

0

문제점 Dojo가 JSP의 날짜 값을 Java의 Date로 취하는 반면 JQuery은 문자열로 표시됩니다.

그리고 스트럿 setDate(String)에 대한 발견하지 setDate(Date)에 대한 JQuery와했다.

+0

제출하는 동안 문제가 발생하며 모든 요청 매개 변수는 String으로 도착합니다. Struts2는 프로퍼티 이름을보고 프로퍼티 타입을 검사 한 다음 알려진 변환 (struts2 매개 변수 인터셉터)을 적용하려고 시도합니다. 값이 설정되지 않으면 값을 설정할 수 없습니다. 단순히 모든 날짜 형식을 설명 할 수 없으며 사용자 지정 변환 없이는 하나의 afaik 계정 만 포함합니다. – Quaternion