当前位置: 代码迷 >> Java Web开发 >> 请问一个关于struts2的ModelDriven的变量名有关问题
  详细解决方案

请问一个关于struts2的ModelDriven的变量名有关问题

热度:113   发布时间:2016-04-16 21:42:26.0
请教一个关于struts2的ModelDriven的变量名问题
本帖最后由 weiwolong 于 2014-11-10 15:13:54 编辑
问题描述:
1、Action中实现了ModelDriven<UserBean>,
2、UserBean类中有属性 String village = "大黄村";    
3、Action的execute()中的代码:
   List<?> village = null; 
     request.setAttribute("village",  village);
4、jsp页面中的代码:
   List<?> village = (List<?>) request.getAttribute("village");  
     执行到jsp的这一句时报异常java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List。
  debug跟踪时看到request里面没有"village"元素, 但我打印request.getAttribute("village")的值发现是"大黄村", 怎么会变成UserBean中的village?
    请问为什么会出现这种情况,要怎么解决。
------解决思路----------------------
一个 List,一个 String,不匹配呀
------解决思路----------------------
办法就是你别写两个village 
------解决思路----------------------
execute方法中 request.setAttrubite("village")后,方法结束,struts2会往request中.setAttrubite 这个action属性的值,这样action中的属性village将覆盖了原来的execute中set进去的village,所以就那样
  相关解决方案