解决方案 »

  1.   

    估计是注解没扫描到
    <context:annotation-config />
    <context:component-scan base-package="com" />
      

  2.   

    如果在action中用service层  加@resource
      

  3.   

    @Resource
    private UserService userService;这样上面的userService 就不用加get set  
      

  4.   

    @wbshuaiq  我理解你的说的意思,service层是这样,加上@service等注解是不用写getter和setter方法了。
    但我的疑惑是“为什么MVC中控制器Action中定义成员变量持久类bean或者po,往往为什么用了@Autowired注解不顶用还要加上对应的getter和setter方法才能注入呢?@Autowired对这样的javabean成员变量是不是摆设?”,应该不是你说的注解没扫到配置文件的问题,因为spring和hibernate或mybatis的集成项目都用过,而且在不同的公司,都是这样情况,不应该是配置方面出的问题。
      

  5.   

    @wbshuaiq  是的,实体类加@Autowired,不会报错的,hibernate和mybatis的实体类都可以,在struts2或springMVC中,Action中加上这些实体类作为成员变量,视图可以直接把表单的各个变量“映射”到这个变量的各个属性里边,不过对象名字得相同。问题是Action里这些实体类对象必须有对应的getter和setter方法,否则前台的变量匹配不进去,用@Autowired不起作用。