各位玩友好,请问web使用spring2.5.5注释时,出现nullpointer.
基于bean的注释正确,可以使用ClassPathXmlApplicationContext读取注释的bean!
好像是web加载参数配置文件出现问题。
loginAction代码如下:/**
* 基于spring2.5.5注释
* @author wjc
*
*/
@Controller("login")
public class LoginAction extends DispatchAction {
@Resource(name="userService")
private TUserService userService;
@Resource(name="user")
private TUser user;
public ActionForward landing(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
String[] locations = {"springConfig/applicationContext.xml"};
/* ApplicationContext ctx =
new ClassPathXmlApplicationContext(locations);
TUser user = (TUser) ctx.getBean("user");
TUserService userService = (TUserService)ctx.getBean("userService");*/
//使用时,user,userService为空。但是上面注释的代码中可以获取该bean,并打印。
int i = userService.checkUser(user);
if(i==0){
return mapping.findForward("success");
}else{
return mapping.findForward("error");
}
}
}TUserService 代码:/**
* 基于spring2.5.5注释
* @author wjc
*
*/@Service("userService")
public class TUserServiceImp implements TUserService {
@Resource(name="userDao")
private TUserDao userDao;
public int checkUser(TUser user) {
int i = userDao.checkUser(user);
return i;
}}web.xml配置
<!-- 过应用上下文初始化参数来指定Spring的配置文件的路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:springConfig/applicationContext.xml</param-value>
</context-param> <!-- 配置ContextLoadListener监听器 -->
<!-- 在Servlet或JSP中,直接使用Spring提供的WebApplicationContextUtils工具类就可以获取Spring的WebApplicationContext容器了,然后就可以从该容器中获取你想要的Bean了 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
spring:applicationContext.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="com.shangwang"/>
</beans>
!请大家指教
基于bean的注释正确,可以使用ClassPathXmlApplicationContext读取注释的bean!
好像是web加载参数配置文件出现问题。
loginAction代码如下:/**
* 基于spring2.5.5注释
* @author wjc
*
*/
@Controller("login")
public class LoginAction extends DispatchAction {
@Resource(name="userService")
private TUserService userService;
@Resource(name="user")
private TUser user;
public ActionForward landing(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
String[] locations = {"springConfig/applicationContext.xml"};
/* ApplicationContext ctx =
new ClassPathXmlApplicationContext(locations);
TUser user = (TUser) ctx.getBean("user");
TUserService userService = (TUserService)ctx.getBean("userService");*/
//使用时,user,userService为空。但是上面注释的代码中可以获取该bean,并打印。
int i = userService.checkUser(user);
if(i==0){
return mapping.findForward("success");
}else{
return mapping.findForward("error");
}
}
}TUserService 代码:/**
* 基于spring2.5.5注释
* @author wjc
*
*/@Service("userService")
public class TUserServiceImp implements TUserService {
@Resource(name="userDao")
private TUserDao userDao;
public int checkUser(TUser user) {
int i = userDao.checkUser(user);
return i;
}}web.xml配置
<!-- 过应用上下文初始化参数来指定Spring的配置文件的路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:springConfig/applicationContext.xml</param-value>
</context-param> <!-- 配置ContextLoadListener监听器 -->
<!-- 在Servlet或JSP中,直接使用Spring提供的WebApplicationContextUtils工具类就可以获取Spring的WebApplicationContext容器了,然后就可以从该容器中获取你想要的Bean了 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
spring:applicationContext.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="com.shangwang"/>
</beans>
!请大家指教
解决方案 »
- 问个很菜的问题!大家不许笑
- 请教高手>>>在struts应用中如何将输入页面中的数据提交到另一个页面显示,急,急,急
- 如何在tomcat中设置自己的主页!
- 初学者急求: 求从oracle9i数据库中将一个表中字段ID的最大值取出来的方法
- 这个东西到底该怎么用呀?
- 小问题:怎么在离开一张网页之后即让其中有些用过的变量的内容失效?
- 请教各位用过jb8 + struts1.1的高手 。。。。
- 在jsp中如何实现树呀?
- 谁知道jsp好的开发工具(在线给分)119
- 如何将object转化为int??
- 如何将JavaScript自定义对象转换成JSON字符串?
- javascript的function中是不是不能使用request中一个attribute(是个对象,java类)的方法
在strutsAction中bean的定义
@Controller("/login")