FORM中传递对象的错误

hongliang19840806 2008-07-20 11:45:46
我希望在STRUTS的从页面中传递一个subject 和user 对象到FORM中,但是却总是出现如下错误信息,不知道是为什么 ?
难道不可以传递一个对象的引用么?
错误信息如下:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause

java.lang.IllegalArgumentException: Cannot invoke com.yourcompany.struts.form.Pingjia2Form.setSubject - 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)
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

...全文
86 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongliang19840806 2008-07-29
  • 打赏
  • 举报
回复
可能是我的名字有改过,所以产生了一点歧义。我的subjectid 就是一个subject对象的名字而已。
ml1812650 2008-07-28
  • 打赏
  • 举报
回复
setSubject这个方法有吗?那里面不是用Subject定义的subjectid吗?
hongliang19840806 2008-07-28
  • 打赏
  • 举报
回复
我在网上查了很多都说是DATE对象引起的这个类型转换的问题,我的Subject对象里面也包含DATE字段,是不是也是由于这个字段引起的问题呢。我也实在是搞不懂了 。。。
hepeng19861212 2008-07-27
  • 打赏
  • 举报
回复
菜鸟飞过。
或许楼主要把源码发出来给大家看看了
Cannot invoke setSubject
不能调用setSubject方法。检查一下setSubject

argument type mismatch 因为参数类型不匹配。
hongliang19840806 2008-07-27
  • 打赏
  • 举报
回复
页面中打印出来的${subject}是有对象的,而且${subject.title}查看里面的属性也是正确的。但是就是传递进去的时候就提示出了类型不匹配的错误。我不知道为什么。网上查很多都说是DATE转换出的问题,我的subject对象里面有一个属性类型是DATE类型的,不知道是不是这个属性出了问题,也不知道要怎么解决?希望大家指导下?
gesanri 2008-07-27
  • 打赏
  • 举报
回复
java.lang.IllegalArgumentException: Cannot invoke com.yourcompany.struts.form.Pingjia2Form.setSubject - argument type mismatch
参数不匹配,如果如你所说不是后台的问题,那就只能是页面的问题了,你能确定你的值传进去了吗
hongliang19840806 2008-07-27
  • 打赏
  • 举报
回复
异常提示的确实就是匹配错误 ,
但是我在类型中没有发现类型错误啊,就是类型是我自定义的一个类型:
FORM 中的内容(部分)/** subjectid property */
private Subject subjectid;

/**
* Returns the subjectid.
* @return String
*/
public Subject getSubjectid() {
return subjectid;
}

/**
* Set the subjectid.
* @param subjectid The subjectid to set
*/
public void setSubjectid(Subject subjectid) {
this.subjectid = subjectid;
}

页面中我使用的是<html:text property="hidden" value="${subject}"/>
页面中也已经存在${subject}的值了,我查看到了,但是提交后,就提示出了类型不匹配的问题,我也查不到到底是哪里不匹配啊。
楼上说要看XML文件是哪个XML文件,这个和XML没有什么关系吧?
hongliang19840806 2008-07-27
  • 打赏
  • 举报
回复
setSubject的内容就是setSubjectid的内容,因为我后来又有写了另外一个类来试验这个问题,所以可能两个内容写串了,但是内容都是一样的,就是名字可能有点小不同。
/**
* Set the subjectid.
* @param subjectid The subjectid to set
*/
public void setSubjectid(Subject subjectid) {
this.subjectid = subjectid;
}
  • 打赏
  • 举报
回复
.xml
zhouzongxi 2008-07-20
  • 打赏
  • 举报
回复
看你的异常是参数类型匹配错误啊。
Cannot invoke com.yourcompany.struts.form.Pingjia2Form.setSubject - argument type mismatch
自己找下是不是那个地方的类型写错了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧