2012-05-25 3 views
1

birthDate에 대한 텍스트 필드가 있습니다. 사용자가 유효하지 않은 날짜를 입력하면 예를 들어 문자열을 말하면서 오류 메시지가 성공적으로 표시됩니다.Struts2의 NoSuchMethodException

가 나는 오류가 발생 이유 뭔가를 놓친 적이 ([Ljava.lang.String) Profile.setBirthDate :

java.lang.NoSuchMethodException :하지만 내 콘솔에서이 오류가있어?

답변

1

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()를 추가합니다.

+0

String이 아닌 java.util.Date입니다. –

+0

s : textField가 날짜가 아닌 문자열로 매핑됩니다. – mprabhat

+0

@JRGalia 답변을 업데이트했습니다. – mprabhat

관련 문제