这个jsp执行时不会抛出异常吗?你用了HttpServletResponse.getWriter(),这个方法不应该在jsp里面被调用。如果这是Servlet里的一个方法,那是没有问题的,但是在jsp里,容器已经调用了getWriter方法来初始化out对象,如果你再去调,就会出一个IllegalStateException。这个方法应该放在一个Servlet里,由Servlet的doGet或doPost方法来调。但是你把jsp和Servlet混起来了。如果我猜得没错,jsp执行时,会在这句PrintWriter out = response.getWriter();抛出异常。
* 修改电子邮件
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws IOException
*/
public void modifyEmail(HttpServletRequest request, HttpServletResponse response) throws
IOException{
String newemail = request.getParameter("tb_nemail"); HttpSession session = request.getSession();
PrintWriter out = response.getWriter(); String memberID = (String)session.getAttribute("memberID");
try{
//执行包
String spStr = "{ call REGISTINFO.MODIFYEMAIL(?,?) }"; ArrayList params = new ArrayList();
params = DbSetParams.setParam(1, newemail, DbParamType.DbVarchar,params);
params = DbSetParams.setParam(2, memberID, DbParamType.DbVarchar,params);
if (db.executeNonQueryCallSql(spStr, params)) {
out.print(errorMsg.Erroralert("电子邮件修改成功!","/MemberSpace/MemberUpgrade/emailChange.jsp", 0));
} else {
out.print(errorMsg.Erroralert("电子邮件修改失败!","/MemberSpace/MemberUpgrade/emailChange.jsp", 0));
}
}catch(Exception ex){
System.out.print("modifyEmail Exception :"+ex.toString());
}
}errorMsg是可以输出错误的js代码,这些都是在javabean中,以前可以实现输出的,现在怎么不行了?
2. debug一下看看你的errorMsg.Erroralert()方法返回是否为null或""。
import java.io.*;public class OutTest {
public void output(HttpServletRequest request, HttpServletResponse response)
throws IOException{
PrintWriter out = response.getWriter();
out.println("hello world");
}
}jsp:<jsp:useBean id="outTest" class="test.OutTest"/>
<%
outTest.output(request, response);
out.println("After bean invocation");
%>页面输出结果:hello world After bean invocation