日期:2014-05-19  浏览次数:20763 次

struts2 和 spring 整合的问题
action层的代码
@Component("user")
public class UserAction extends ActionSupport {
private UserManager userManager;
private String username;
private String password;

public UserManager getUserManager() {
return userManager;
}
@Resource
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}

@Override
public String execute() throws Exception {
User user = new User();
user.setUsername(username);
user.setPassword(password);
if(userManager.existUser(user)){
return "fail";
}
userManager.add(user);
return "success";
}
......
}

service层中的代码
@Component("userManager")
public class UserManager {
private UserDao userDao;
private UserLogDao userLogDao;
...}

spring配置文件中使用
<context:annotation-config />
<context:component-scan base-package="com" />

--------------------------------------------
单元测试service层(只是spring)没报错
测试struts2时报错,类型为空指针
位置为action层中的
if(userManager.existUser(user)){
--------------------------------------------
我总怀疑struts和spring没有连接起来,userManager没有被注入,问题一直解决不了

------解决方案--------------------
把错误贴出来,不贴怎么看啊。
------解决方案--------------------
@Autowired
private UserManager userManager;

------解决方案--------------------
你是否配置了Spring容器,在web.xml中配置如下
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
------解决方案--------------------
肯定没有注入进来
把配置l文件全贴出来看看
顺便看一下有没有把struts-spring-plugin.jar包加进来
------解决方案--------------------
空指针。
------解决方案--------------------
没有下方了吗?等待解决方案!!!!
------解决方案--------------------
setUserManager的问题吧,好像声明一个 UserManager的变量加上源数据@Resource就ok了 不用在set get了,当然如果前后台传递的数据还是需要set get的
------解决方案--------------------
遇到了同样的问题 求解
------解决方案--------------------
配置文件中设置了“事务bean”没啊? 
我以前也遇到过这样问题,配置下配置文件就行了
------解决方案--------------------
自动注入的话 要是接口吧。UserManager要是接口,然后写一个他的实现类。
------解决方案--------------------
缺的东西太多了,还是找个例子好好看看吧