错误:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Cannot find bean: "userName" in scope: "request"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.login.welcome_jsp._jspService(welcome_jsp.java:90)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.servlet.jsp.JspException: Cannot find bean: "userName" in scope: "request"
org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:937)
org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:225)
org.apache.jsp.login.welcome_jsp._jspx_meth_bean_write_0(welcome_jsp.java:107)
org.apache.jsp.login.welcome_jsp._jspService(welcome_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
我在loginAction.java
public class loginAction extends Action {
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
UserActionForm userActionForm = (UserActionForm) form;
Connection conn=null;
try{
conn=DBConnection.getConnection();
PreparedStatement pStat = conn.prepareStatement(
"select l.username,l.password from LOGIN l where l.username=? and l.password=?");
pStat.setString(1, userActionForm.getUserName());
pStat.setString(2, userActionForm.getPassword());
ResultSet rs = pStat.executeQuery();
if (rs.next())
{
userActionForm.setUserName(rs.getString(1));
request.getSession().setAttribute("userName", userActionForm);
return mapping.findForward("success");
}
}
welcome.jsp
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<html>
<head>
<title>welcome</title>
</head>
<body bgcolor="#ffffff">登录成功<bean:write name="UserActionForm" scope="request" /> </body>
</html> struts-config.xml<action-mappings>
<action name="userActionForm"
path="/loginAction"
type="com.yourcompany.struts.bookstore.loginAction"
scope="request"
validate="false" >
<forward name="success" path="/login/welcome.jsp" redirect="false" />
<forward name="fail" path="/login/fail.jsp" />
</action> 我不知道如何哪没写对,有经验的提示下,谢谢。
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Cannot find bean: "userName" in scope: "request"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.login.welcome_jsp._jspService(welcome_jsp.java:90)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.servlet.jsp.JspException: Cannot find bean: "userName" in scope: "request"
org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:937)
org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:225)
org.apache.jsp.login.welcome_jsp._jspx_meth_bean_write_0(welcome_jsp.java:107)
org.apache.jsp.login.welcome_jsp._jspService(welcome_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
我在loginAction.java
public class loginAction extends Action {
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
UserActionForm userActionForm = (UserActionForm) form;
Connection conn=null;
try{
conn=DBConnection.getConnection();
PreparedStatement pStat = conn.prepareStatement(
"select l.username,l.password from LOGIN l where l.username=? and l.password=?");
pStat.setString(1, userActionForm.getUserName());
pStat.setString(2, userActionForm.getPassword());
ResultSet rs = pStat.executeQuery();
if (rs.next())
{
userActionForm.setUserName(rs.getString(1));
request.getSession().setAttribute("userName", userActionForm);
return mapping.findForward("success");
}
}
welcome.jsp
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<html>
<head>
<title>welcome</title>
</head>
<body bgcolor="#ffffff">登录成功<bean:write name="UserActionForm" scope="request" /> </body>
</html> struts-config.xml<action-mappings>
<action name="userActionForm"
path="/loginAction"
type="com.yourcompany.struts.bookstore.loginAction"
scope="request"
validate="false" >
<forward name="success" path="/login/welcome.jsp" redirect="false" />
<forward name="fail" path="/login/fail.jsp" />
</action> 我不知道如何哪没写对,有经验的提示下,谢谢。
虽然session是通过request取出来的,但并没有包含的关系。
welcome.jsp
<%@page contentType="text/html; charset=GB2312"%>
<html>
<head>
<title>welcome</title>
</head>
<jsp:useBean id="ses_userBean" scope="session" class="com.yourcompany.struts.bookstore.UserActionForm"/>
<body bgcolor="#ffffff"><div align="center">
<%=ses_userBean.getUserName()%>
欢迎登录<br>
<div align="right"><a href="login/login.jsp">返回</a></div>
</div></body>
</html>
UserActionForm.java
request.getSession().setAttribute("ses_userBean", userActionForm);
顺便问下为什么一定要用ses_userBean用aa_userBean就不行~