当前位置: 代码迷 >> Java Web开发 >> 跳页,出BeanUtil.populate错误-->千里冰封转移
  详细解决方案

跳页,出BeanUtil.populate错误-->千里冰封转移

热度:91   发布时间:2007-09-03 15:10:23.0
跳页,出BeanUtil.populate错误-->千里冰封转移
出错的程序是用structs开发的。
现在一个页面里包含多个select标签以及隐藏的标签。还有FormFile对象,用于上传文件。
从别的页面进入,都一切正常,但是从这个页面跳转到某个页面(目前发现的唯一一个出这个错误的页面),就会出错,报的错误是:BeanUtil.populate。

跟了一下代码,走了调用下一个页面的javascript方法,但是action没有走到就出错了。

更奇怪的是,跳转到其他页面都没有问题。

哪位大侠知道这个错误是什么引起的?如何解决阿?哪怕是可能出错的地方也行啊。

ps:FormFile对象是分开定义的,不是数组,是单个的对象。
搜索更多相关主题的帖子: BeanUtil  populate  千里冰封  页面  FormFile  

----------------解决方案--------------------------------------------------------
没人知道啊
----------------解决方案--------------------------------------------------------

这应该是数据类型不一致的错误`
还没走Action 但是已经走了ActionForm了
所以在将表单的值传给ActionForm的时候,应该有特殊的数据类型 例如Date或者别的对象
你去看一下日志文件`
那里会有完整的错误输出......如果是Tomcat就在安装目录下的logs文件夹下面`
你看今天的日志``


----------------解决方案--------------------------------------------------------
看了,log里打的就是BeanUtil.populate。

然后把这个画面的所有select的隐藏变量去掉,就不会出错了。(但是其他业务处理需要这些隐藏变量的,还不能去)

要说是类型不一致。跳页调用的是另外一个画面的initialAction。原画面的数据不会赋值给跳转后的页面啊。
没有数据的赋值一说,还会发生类型不一致么?
----------------解决方案--------------------------------------------------------

你在Struts中 如果那个<html:form >的 action="" 要是不写`
你看是不是会出现错误```
你调用initialAction是不是 用.do的路径来调用啊` 那么这个Action在配置文件的时候`
是不是要指定ActionForm
在你这个页面中是不是用<html:form action=".do"> 来调用initialAction
那么程序执行的时候,这个form表单会自动去找与initialAction匹配的ActionForm
然后把form表单的值传给ActionForm里面的变量
所以一有请求,程序就给ActionForm里面的变量赋值


----------------解决方案--------------------------------------------------------
在我的页面里,比如A.jsp,通过点击一个按钮,触发onclick事件,调用的B页面的initialAction.do。
那请问版主,你说的那个类型不匹配,是A的ActionForm还是B的ActionForm呢?
----------------解决方案--------------------------------------------------------
initialAction.do 这个路径对应的Action 关联的ActionForm
----------------解决方案--------------------------------------------------------

那就是B页面的actionForm出现类型不匹配了吧?

但是不从A页面,从其他任何页面调用B页面的intialAction.do,都正常。


----------------解决方案--------------------------------------------------------

???
哪个页面的.do不对吧``
在A页面调用.do路径
应该是 <html:form action=".do"> 然后提交就访问这个.do的对应的Action的方法

为什么是B页面的.do呢`
我不太清楚了` 要是你是从A页面调用B页面 大可以用 b.jsp就可以了
为什么会是.do的形式呢
----------------解决方案--------------------------------------------------------
斑竹啊,不是在form的action里调用。
调用.do,不是和.jsp一样么?
在structs配置文件里已经写了action成功的话走哪个jsp,不成功的话走哪个jsp的。
B的intialAction成功后走的就是B的jsp页面啊。


----------------解决方案--------------------------------------------------------