做个小练习 用hibernate+spring+springmvc做一个登录界面
在登录的controller中想调用 dao来进行查询 结果测试的时候显示dao的空指针一场
已经在loginController中设置了dao的setter/getter方法 可是依然报空
下面是代码loginController.java public class loginController {
private userDaoImpl userdaoimpl;
@RequestMapping("/login.do")
public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response){
//userdaoimpl = new UserDaoImpl();
ModelAndView mdv = new ModelAndView();
String username ="111";
String password ="111";
if(userdaoimpl == null){
System.out.print("userdaoimpl is null");
}
List<User> list = userdaoimpl.findUserByUsername(username);
if(list.isEmpty()){
mdv.setViewName("login1");
}
//System.out.print(username+","+password);
else if(list.get(0).getPassword().equals(password)){
mdv.addObject("username",username);
mdv.addObject("password",password);
mdv.setViewName("loginSuccess");
}
if(list.isEmpty()){
System.out.print("list is null");
}
else{
User user = list.get(0);
System.out.println("hello"+user.getUsername());
mdv.setViewName("loginSuccess");
}
return mdv;
}
public void setUserDaoImpl(userDaoImpl userdaoimpl){
this.userdaoimpl = userdaoimpl;
}
public userDaoImpl getUserDaoImpl(){
return this.userdaoimpl;
}
}userDaoImpl代码public class userDaoImpl extends BaseDao implements UserDao{ private HibernateTemplate hibernatetemplate;
@SuppressWarnings("unchecked")
@Override
public List<User> findUserByUsername(String username) {
// TODO Auto-generated method stub
List user = hibernatetemplate.find("from User u where u.username = ?", username);
return user;
}}applicatonContext的后几行配置bean的代码:<bean id="userdao" class="com.lightblog.dao.userDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <bean id="loginController" class="com.lightblog.controller.loginController">
<property name="userdao" ref="userdao" />
</bean>异常代码exception org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
com.lightblog.controller.loginController.handleRequest(loginController.java:45)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:174)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
SpringHibernatespringmvc
在登录的controller中想调用 dao来进行查询 结果测试的时候显示dao的空指针一场
已经在loginController中设置了dao的setter/getter方法 可是依然报空
下面是代码loginController.java public class loginController {
private userDaoImpl userdaoimpl;
@RequestMapping("/login.do")
public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response){
//userdaoimpl = new UserDaoImpl();
ModelAndView mdv = new ModelAndView();
String username ="111";
String password ="111";
if(userdaoimpl == null){
System.out.print("userdaoimpl is null");
}
List<User> list = userdaoimpl.findUserByUsername(username);
if(list.isEmpty()){
mdv.setViewName("login1");
}
//System.out.print(username+","+password);
else if(list.get(0).getPassword().equals(password)){
mdv.addObject("username",username);
mdv.addObject("password",password);
mdv.setViewName("loginSuccess");
}
if(list.isEmpty()){
System.out.print("list is null");
}
else{
User user = list.get(0);
System.out.println("hello"+user.getUsername());
mdv.setViewName("loginSuccess");
}
return mdv;
}
public void setUserDaoImpl(userDaoImpl userdaoimpl){
this.userdaoimpl = userdaoimpl;
}
public userDaoImpl getUserDaoImpl(){
return this.userdaoimpl;
}
}userDaoImpl代码public class userDaoImpl extends BaseDao implements UserDao{ private HibernateTemplate hibernatetemplate;
@SuppressWarnings("unchecked")
@Override
public List<User> findUserByUsername(String username) {
// TODO Auto-generated method stub
List user = hibernatetemplate.find("from User u where u.username = ?", username);
return user;
}}applicatonContext的后几行配置bean的代码:<bean id="userdao" class="com.lightblog.dao.userDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <bean id="loginController" class="com.lightblog.controller.loginController">
<property name="userdao" ref="userdao" />
</bean>异常代码exception org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
com.lightblog.controller.loginController.handleRequest(loginController.java:45)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:174)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
SpringHibernatespringmvc
解决方案 »
- iBatis笔记
- 请教 "收集网络视频广告播放次数的思路"...谢谢各位朋友帮忙~
- 求一个eclipse下开发struts+spring+hibernate的简单例子
- 如何用java实现.NET中的导航菜单(如资源管理器)?
- 求救!我的Tomcat5.0,到底怎么了?没有一个JSP程序可以运行的,都是出现相同的错误!
- 各位,我刚毕业的,为落户,证件放在公司快三个月了,不会有事吧
- 熟悉qq原理的大虾请进!应该是简单问题!
- oracle+tomcat的连接池,怎么样才能实现?
- 分数太多,大家共享
- ejb可户段中的 ClassName.class什么意思?
- struts2.3.4+hibernate4.18+spring3.2 自动创建外键关联失败,创建序列失败!
- hibernate的关联问题
loginController中的变量:private userDaoImpl userdaoimpl;
你已经在bean配置文件中配置了
<bean id="loginController" class="com.lightblog.controller.loginController">
<property name="userdao" ref="userdao" />
</bean>
就不要这么定义了
修改:private UserDao userdao;
声明UserDao没办法实现操作吧
至于代码奇葩 我可能实践的不多 不知道应该如何改代码才规范 有什么问题请指出
<property name="userdao" ref="userdao" />
</bean>。那么你相应的loginController这个类下的变量名字也应该是private UserDao userdao; 还有你配置中的ref="userdao" />有在配置文件中有这个bean配置吗,没有你就要全路径吧。