首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

S2SH整合出现空指针错误,求解!

2011-11-22 
S2SH整合出现空指针异常,求解!!!public class loginDao extends HibernateDaoSupport implements IloginDa

S2SH整合出现空指针异常,求解!!!
public class loginDao extends HibernateDaoSupport implements IloginDao{

public List login(user user) {
try{String hql="from java_test where name='"+user.getUserName()+"' and pwd='"+user.getPassWord()+"'";
System.out.print("------"+hql);
List list =this.getHibernateTemplate().find(hql);
if(list.size()>0){
System.out.println(list);
return list;
}else return null;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
}



public class LoginService implements ILoginService{
private IloginDao loginDao;

public IloginDao getLoginDao() {
return loginDao;
}
public void setLoginDao(IloginDao loginDao) {
this.loginDao = loginDao;
}

public List login(user user) {
  return this.getLoginDao().login(user);
}
}




public class LoginAction {
private ILoginService loginservice;
private user user;
public ILoginService getLoginservice() {
return loginservice;
}
public void setLoginservice(ILoginService loginservice) {
this.loginservice = loginservice;
}

public user getUser() {
return user;
}
public void setUser(user user) {
this.user = user;
}


public String execute() throws Exception { 
user.setUserName(user.getUserName());
System.out.println(user.getUserName());
user.setPassWord(user.getPassWord());
System.out.println(user.getPassWord());
List list=loginservice.login(user);

if (list!=null&&list.size()>0) { 
System.out.println("登陆成功"); 
  ServletActionContext.getRequest().setAttribute("list", list);
return "success";} 
else { 
return "error";
}
  }
}



<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="Struts2" extends="struts-default"> 
  <action name="LoginAction" class="com.test.action.LoginAction" method="execute"> 
  <result name="error">/index.jsp</result> 
  <result name="success">/success.jsp</result>  
  </action>
  </package>
<constant name="struts.objectFactory" value="spring" />
</struts>  



<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">


<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>

<!-- dao___sessionFactory -->
<bean id="loginDao" class="com.test.dao.loginDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="loginService" class="com.test.service.LoginService">
<property name="loginDao" ref="loginDao"></property>


</bean>

<bean id="loginAction" class="com.test.action.LoginAction">
<property name="loginservice" ref="loginService"></property>
</bean>

</beans>





<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <filter>
  <filter-name>struts2</filter-name>
  <filter-class>
  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  </filter-class>
  </filter>
  <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.action</url-pattern>
  </filter-mapping>
  
  <listener>
  <listener-class>
  org.springframework.web.context.ContextLoaderListener
  </listener-class>
  </listener>
  
  </web-app>



求解,为什么都没调用到hql语句????是注入错误吗???






[解决办法]
哎,我最近也遇到和你一样的问题,到现在都没有解决
[解决办法]
execute方法中
user.setUserName(user.getUserName());
System.out.println(user.getUserName());
user.setPassWord(user.getPassWord());
System.out.println(user.getPassWord());

两个输出的值是什么?

另:这代码跟没写一样...
建议新new一个user1进行set,然后
List list=loginservice.login(user1);


[解决办法]
action里面的service名称跟application.xml中的bean--》service名称不一致……
[解决办法]
user.getUserName();
user是你定义的一个对象,没有实例化吧,必然空指针

热点排行