birthDate에 대한 텍스트 필드가 있습니다. 사용자가 유효하지 않은 날짜를 입력하면 예를 들어 문자열을 말하면서 오류 메시지가 성공적으로 표시됩니다.Struts2의 NoSuchMethodException
가 나는 오류가 발생 이유 뭔가를 놓친 적이 ([Ljava.lang.String) Profile.setBirthDate :
java.lang.NoSuchMethodException :하지만 내 콘솔에서이 오류가있어?
birthDate에 대한 텍스트 필드가 있습니다. 사용자가 유효하지 않은 날짜를 입력하면 예를 들어 문자열을 말하면서 오류 메시지가 성공적으로 표시됩니다.Struts2의 NoSuchMethodException
가 나는 오류가 발생 이유 뭔가를 놓친 적이 ([Ljava.lang.String) Profile.setBirthDate :
java.lang.NoSuchMethodException :하지만 내 콘솔에서이 오류가있어?
Action 클래스에 setBirthDate(String birthDate)
이라는 메서드가 없으므로 문제를 해결해야합니다.
참고 모든 속성에 대해 모든 getter 및 setter를 작업 클래스에 배치했는지 확인하십시오. 나는 당신의 JSP 생각
당신은이 :
<s:textfield name="birthDate" />
이 방법은 따라서 당신의 행동에 NoSuchMethodException
업데이트 누락되어 있기 때문에 Struts는, setBirthDate(String string)
이지도를하려고합니다 :
으로 문자열을 날짜로 변환 :
public class MyStringToDateConverter extends StrutsTypeConverter {
public Object convertFromString(Map context, String[] values, Class toClass) {
//Parse String to get a date object
}
public String convertToString(Map context, Object o) {
// Get the string from object o
}
}
당신은 당신이 예를 들어 official documentation 볼 수 있습니다 주석을 사용 싶지 않는 경우 Action 클래스에 주석을 사용하여 다음 작업을
@Conversion()
public class MyAction extends ActionSupport{
public Date myDate = null;
@TypeConversion(converter="MyStringToDateConverter") //Fully qualified name so if this class is in mypackage then converter will be "myPackage.MyStringToDateConverter"
public void setMyDate(Date date) {
this.myDate = date;
}
}
에 @Conversion()
를 추가합니다.
String이 아닌 java.util.Date입니다. –
s : textField가 날짜가 아닌 문자열로 매핑됩니다. – mprabhat
@JRGalia 답변을 업데이트했습니다. – mprabhat