入力リクエストパラメータ(もちろん文字列型)の処理に問題がありますjava.util.Date
。Beanに追加された次のコードでこの問題が解決する可能性があると思いましたが、間違っていました。
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public void setDate(String dateString) {
try {
date = DateFormat.getDateInstance().parse(dateString);
} catch (ParseException e) {
date = new Date();
}
}
フォームを送信した後、例外がスローされます。
javax.servlet.ServletException: BeanUtils.populate org.apache.struts.util.RequestUtils.populate(RequestUtils.java:469) org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:818) java.lang.IllegalArgumentException: Cannot invoke com.epam.testapp.model.News.setDate - argument type mismatch org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778) org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759) org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648) org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
このStruts1フォームの基本は、ゲッターを返すこととセッターパラメータータイプを受け入れることの不一致のためにこのコードが機能しないということですか?どうすればこの問題を解決できますか?setStringDate(String stringDate(){...}
likeという名前のメソッドを作成して、すべてのページでどのメソッドを呼び出すべきかを考えたくありません:(