错误:
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>   我不知道如何哪没写对,有经验的提示下,谢谢。

解决方案 »

  1.   

    <bean:write name="UserActionForm" scope="request" />把scope换成session看看
      

  2.   

    那是不同的作用域,你把bean放到session里,然后要从request域中取,当然取不到的。
    虽然session是通过request取出来的,但并没有包含的关系。
      

  3.   

    我看了下别人的帖子问题解决了
    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就不行~