今天实验了下spring整合struts2,发现个奇怪的问题:
实体类有 Vet,Owner,Visits...
在action中,是这样写的:
private Vet vet;
private Owner owner;当用struts2自己管理action时,没有任何问题
当把action交给spring管理时,action中的实体vet对象始终为null,不管是哪个action,只要用到了实体vet,都是null,而其他的实体对象,如owner却啥问题没有。后来把
private Vet Vet;
改成
private Vet vet = new Vet();
后,问题解决
Vet实体类和别的实体类又没啥区别,不就换了个类名和几个属性吗
但其他的实体对象却不用自己new网上查了半天,还是没找到答案

解决方案 »

  1.   

    这个与new没有关系,你把new去掉仔细看看两个地方(首先确保有set方法):1、看spring中ioc中是否注入了此对象。
    2、如果你是在页面提交到此action,并在表单中封装了vet.**这些属性,那么此对象也会自动被创建,还有记得看好你的大小写。
      

  2.   

    可以按2楼说的试试,检查一下。看set方法有没有写错,看配置文件spring有没有给这个Vet,Owner,Visits注入
      

  3.   

    SET方法必须要写,不然SPRING怎么给你的VO/DO/BEAN/DTO注入?