Struts2는 기본값으로 Maps에 java.lang.Strings
을 삽입하지만, 일부 매개 변수에 대한 동작을 재정의하고 많은 사용자 정의 유형 변환기를 사용하여 다른 객체를 삽입하는 방법이 있습니까?JSP <form>의 다른 java.lang.Objects를 Struts2의 맵에 삽입 할 수 있습니까?
예를 들어, 자바 클래스에 우리는 HashMap을 선언하고 같은 넣을 수 있습니다 :
myHashMap.put(“name”,”myName”); //this is a String
myHashMap.put(“id”,new Integer(“101”)); //this is an Integer
myHashMap.put(“date”,java.util.Calendar.getInstance().getTime()); //this is a Date
이 형식 변환기를 사용하여 <s:form>
에서 직접 올바른 java.lang.Object
를 할당 할 수 있습니까?
당신은 당신의 <s:form>
에서이 같은 경우 :
<s:textfield name="myHashMap['name']"/>
<s:textfield name="myHashMap['id']"/>
<s:textfield name="myHashMap['date']"/>
모든 값 대신, 정수는 날짜 문자열이있는의, HashMap의 내부 java.lang.String
로 종료 ...
I을 행운과 함께 내 자신의 형식 변환기를 만들려고 ... Struts2 setter 및 각 매개 변수에 대한 getters POJO 원하는 있지만 HashMap "put(Key,Value)
"메서드를 사용하는 것 같아요. "myHashMap"에 대한 setter 및 getter가 있지만 Struts가 매개 변수를 설정할 때 POJO처럼 사용한다고 생각했습니다 ("put(Key,Value)
"호출시).
date=app.converter.MyDateConverter
그것은 작동하지 않았다
... 그리고 나는 또한이 일을 시도 :
myHashMap['date']=app.converter.MyDateConverter # (didn't work)
myHashMap.date=app.converter.MyDateConverter # (didn't work)
컨버터 ISN을 전혀 부르지 않았다! "MyDateConverter"클래스가 있고 잘 작동합니다. POJO (HashMap 대신)를 사용하고 "name", "id"및 "date"에 POJO 내부에 setter 및 getters를 만드는 경우 훌륭하게 작동합니다. 하지만, 폼에서 매개 변수의 이름을 변경하거나 다른 POJO를 만들 필요없이 더 많은 것을 추가하기 위해 HashMap과 같은 좀 더 일반적인 것을 사용하고 싶습니다.
잠시 동안 String 만받을 것으로 예상되는 경우 HashMap을 사용하여 작동하지만 사용자 지정 개체를 받기 위해 형식 변환기를 호출하는 방법을 알지 못합니다. 변환기가 호출되지 않고 항상 String으로 끝납니다.