ssh框架整合,做登录的功能??

Zhang987536341 2012-08-07 06:58:13
用struts2.xml + spring + hibernate3.0 做登录的功能,总是报错,小弟第一次用3个框架整合,初学者,希望得到各位前辈的指点

//web.xml applicationContext.xml默认放在src下

<!-- 配置监听 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 加载配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>

//applicationContext.xml里面的配置文件

<!-- 用户登录dao -->
<bean id="logindao" class="com.jy.dao.LoginUserDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<!-- 用户登录service -->
<bean id="loginservice" class="com.jy.service.LoginUserService">
<property name="userdao" ref="logindao"></property>
</bean>

//dao层
//用户登录
public int LoginUser(String userName,String userPassword){

String hql = "from Users where userName='"+userName+"' and userPassword='"+userPassword+"' ";

Query query = this.getSession().createQuery(hql);
List<Users> userList = query.list();

return userList.size();

}

//service层

private String userName;
private String userPassword;
private LoginUserInfo info;

private LoginUserDao userdao;

public String execute(){

try{
LoginUserDao dao = new LoginUserDao();
int i = dao.LoginUser(this.getUserName(), this.getUserPassword());

System.out.println(this.getUserName());

if(i > 0 ){
return "success";
}
else{
return "error";
}

}
catch(Exception ex){
ex.printStackTrace();
}
return "error";
}

//struts.xml

<package name="default" extends="struts-default" namespace="/">
<action name="loginUser" class="loginservice">
<result name="success">/su.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>


报错信息:

java.lang.NullPointerException
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.getSession(HibernateDaoSupport.java:143)
at com.jy.dao.LoginUserDao.LoginUser(LoginUserDao.java:19)
at com.jy.service.LoginUserService.execute(LoginUserService.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
...全文
255 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
上官竹 2013-09-09
  • 打赏
  • 举报
回复
我的qq:1262417156 我的Email:1262417156@qq.com
上官竹 2013-09-09
  • 打赏
  • 举报
回复
大神,我想您已经很厉害了吧,所以求教,就上面的例子,如果撇开struts,单纯的用spring,我要怎么样才能实现spring的控制层,就像你单击提交按钮提交表单,struts会对应找到action执行对应的方法返回对应的参数,然后跳转对应的页面?? 大神我是个初学者,求您教教我吧,,
wcl_friend 2012-08-09
  • 打赏
  • 举报
回复
java.lang.NullPointerException
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.getSession(HibernateDaoSupport.java:143)
at com.jy.dao.LoginUserDao.LoginUser(LoginUserDao.java:19)

dao没有正确的注入
Zhang895341748 2012-08-09
  • 打赏
  • 举报
回复
登录dao层
public int LoginUser(String userName,String userPassword){

List list = this.getHibernateTemplate().find("from Users where userName='"+userName+"' and userPassword='"+userPassword+"' ");

return list.size();

}


action层
try{
String [] name = {"applicationContext.xml"};
BeanFactory bean = new ClassPathXmlApplicationContext(name);

LoginUserService login = (LoginUserService)bean.getBean("loginservice");

int i = login.getUserdao().LoginUser(userName, userPassword);

if(i > 0 ){
return "success";
}
else{
return "error";
}

zyhxkh 2012-08-09
  • 打赏
  • 举报
回复
是注入的问题!与Spring整合时,要注意注入!
iGoodLoser 2012-08-09
  • 打赏
  • 举报
回复
如果确认代码没有问题的话,可能是框架间版本兼容性的问题
haitunwanhaitunwan 2012-08-09
  • 打赏
  • 举报
回复
检查下注入问题吧,可能是注入的问题。
zzlovelyboy 2012-08-07
  • 打赏
  • 举报
回复
上面的报错不是很明显的吗?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧