Action的excute方法: public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
PersonManager personManager = (PersonManager) ctx.getBean("personManager");
String userName = request.getParameter("user");
String password = request.getParameter("password");
Person person = personManager.login(userName, password);
if(person == null){
return mapping.findForward("fail");
}else if(person instanceof UserBean){
UserBean user = (UserBean) person;
request.getSession().setAttribute("person", user);
return mapping.findForward("successUser");
}else if(person instanceof AdminBean){
AdminBean admin = (AdminBean) person;
request.getSession().setAttribute("person", admin);
return mapping.findForward("successAdmin");
}else if(person instanceof SuperAdminBean){
SuperAdminBean superAdmin = (SuperAdminBean) person;
request.getSession().setAttribute("person", superAdmin);
return mapping.findForward("successSuperAdmin");
}
return null;
}
HttpServletRequest request, HttpServletResponse response) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
PersonManager personManager = (PersonManager) ctx.getBean("personManager");
String userName = request.getParameter("user");
String password = request.getParameter("password");
Person person = personManager.login(userName, password);
if(person == null){
return mapping.findForward("fail");
}else if(person instanceof UserBean){
UserBean user = (UserBean) person;
request.getSession().setAttribute("person", user);
return mapping.findForward("successUser");
}else if(person instanceof AdminBean){
AdminBean admin = (AdminBean) person;
request.getSession().setAttribute("person", admin);
return mapping.findForward("successAdmin");
}else if(person instanceof SuperAdminBean){
SuperAdminBean superAdmin = (SuperAdminBean) person;
request.getSession().setAttribute("person", superAdmin);
return mapping.findForward("successSuperAdmin");
}
return null;
}
解决方案 »
- 请java高手帮忙,找找什么问题啊!
- JSP访问没反应了:javax.servlet.ServletException: java.lang.OutOfMemoryError: GC overhead limit exceeded
- EJB and junit
- struts-2.3.12 给action传参数问题
- 如何先让标签体内的内容执行
- 服务器调查 看谁见识多
- 大家来个junit应用讲座怎么样啊
- OutOfMemoryError: PermGen space的问题
- get和post提交
- hibernate多个表关联同一表的问题
- 谁有高质量的源码项目!!都进来看看吧->进来吧
- href action总是转到首页?
public TPerson getTPersonByName(String name){
HibernateTemplate ht = getHibernateTemplate();
List list = ht.find("from TPerson tp where tp.name=?",name);
if(list.size() != 0){
TPerson tPerson = (TPerson) list.get(0);
return tPerson;
}else
return null;
}=================================
红色这行不能这样写。
改成这样试一下
List list = getHibernateTemplate().find("from TPerson tp where tp.name=?",name);
问题还没解决,关键是我在Junit下测试这段代码没有问题,在action下就有问题了.
谢谢
public TPerson getTPersonByName(String name){
Session session = HibernateSessionFactory.getSession();
Query query = session.createQuery("from TPerson tp where tp.name=?");
query.setParameter(0, name);
TPerson tPerson = (TPerson) query.setMaxResults(1).uniqueResult(); //这句报错 return tPerson;
}
并不是Hibernate这里的问题
你先注释掉操作hibernate的代码看是否还报 NullPointerException
com.ace.core.business.impl.PersonManagerBean.login(PersonManagerBean.java:110)
你 把这两个文件的的110行代码指出来。
很可能是spring的配置问题。