日期:2014-05-17  浏览次数:20927 次

【新手】ssh实现的简单的通过密保问题找回密码的功能
简单的通过密保找回密码的功能,ssh实现的
在第一个页面输入用户名,第二个页面显示用户的密保题问并让用户输入答案
但是现在在第二个页面能获取用户名并且打印出来,但是打印密保问题时就出错,恳请各位指教一下
还有这种思路对不,可以有简化的不....
daoImpl
public String findQuestionByName(String name){
Member members = (Member)hibernateTemplate.find("from Member m where m.name = '" + name + "'");
String question = members.getQuestion() ;
return question ;
}

daoManagerImpl
public String findQuestionByName(String name) {
return memberDao.findQuestionByName(name);
}

action

public String findQuestionByName(String name){
return memberManager.findQuestionByName(name);
}

jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page language="java" import="org.lxh.ShangCheng.action.MemberAction" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String name = (String)request.getParameter("info.name");
String question = new MemberAction().findQuestionByName(name);<!--在这一句就出现了问题
org.apache.jasper.JasperException: An exception occurred processing JSP page /findKeyTwo.jsp at line 7-->
%>
SSH Java action struts2 hibernate

------解决方案--------------------
String question = new MemberAction().findQuestionByName(name);
1、你action中熟悉 memberManager 是通过spring依赖注入的那你在页面直接new MemberAction()是不会给memberManager 这个属性赋值的。
2、你直接new之后就掉memberManager.findQuestionByName(name); 就会报NullPointerException
3、解决办法是通过spring容器获取action
ApplicationContext context =  WebApplicationContextUtils. getWebApplicationContext(application); MemberAction action = context.getBean(beanName);