为什么一定加它?? <action 
      name="logonForm" 
      path="/logon" 
      scope="request"path路径不对前面<form action=" <%=path%>logon.do" method="post"> 
aciton = "logon.do"
不用<%=path%> 

解决方案 »

  1.   

    说白了,你把<form action="logon.do" method="post">  里面的“  <%=path%>”去掉
      

  2.   

    要么<form action="logon.do" method="post">  
    要么<form action="/logon.do" method="post">  
    视具体情况而定,但是不能加那个什么 <%=path%>
      

  3.   


    lz看这段:
    <action 
          name="logonForm" 
          path="/logon" 
          scope="request" 
          type="com.weas.struts.user.LogonAction" 
          validate="false" /> 
    <message-resources parameter="com.weas.struts.ApplicationResources" /> 
    </struts-config> 提交的应该是:path="/logon" 源代码就是这样了,可是当我要登录的时候,输入了正确的用户名和密码,浏览器一直显示 
    http://localhost:8080/infoex/longon.do  //为什么你的浏览器显示的是longon.do???? 多了一个n  ?????
      

  4.   

    建议lz用绝对路径<form action="/infoex/logon.do" method="post"> 这样就应该没问题了。
      

  5.   

    lz的html标签也有问题,改下,会导致浏览器编译错误。
    <form action=" <%=path%>logon.do" method="post"> 
    <input class="gray input"  onclick="this.value='';this.className='input black'" size="15" value="输入用户名" name="username" /> 
    <input class="gray input" onClick="this.value='';" type="password" size="15" name="password" /> 
    <input name="submit" type="submit" class="btn" value="登 录" /> 
    应该改成:
    <form action=" <%=path%>logon.do" method="post"> 
    <input class="gray input"  size="15" value="输入用户名" name="username" /> 
    <input class="gray input" type="password" size="15" name="password" /> 
    <input name="submit" type="submit" class="btn" value="登 录" /> 
    试一试
      

  6.   

    (1)path如果改为logon.do 还是一直没反应
    (2)path如果改为/logon.do 浏览器提示 description The requested resource (/logon.do) is not available.
    浏览器里的地址变为http://localhost:8080/logon.do
    (3)path如果改为/infoex/logon.do还是一直没显示
    (4)其实每次Eclipse都为弹出调试窗口,显示Class.class文件,不知道这个是为什么?
      

  7.   

    <% 
    String path = request.getContextPath() + "/"; 
    %>
    这是提取相对地址的意思,即项目的根目录.
    看来 <form action=" <%=path%>logon.do" method="post"> 
    也是没错的,好像错不在这里.
      

  8.   

    lz 在action里打印一下,看看有没有进入到action里然用lz用 out.println("");的形式返回一下看看有没有页面出来,不要用return mapping.findForward("Toindex"); 
      

  9.   

    JspWrite out=pageContext.getOut();
    out.println("helloword!");好像在Action里面不可以有输出的吧.
    我用上面两句编辑不过.
      

  10.   

    源代码就是这样了,可是当我要登录的时候,输入了正确的用户名和密码,浏览器一直显示 
    http://localhost:8080/infoex/longon.do  请问这个问题出在那时.控制台也没什么提示,搞了好久还是没弄好,只好求助于你们了!----------------------------------------------------------大哥,web.xml配置了吗?看看进没进Action,如果没进,去改web.xml和struts配置文件,进了就再找别处
      

  11.   

    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>2</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>2</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet>  <!-- Standard Action Servlet Mapping -->
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>web.xml你配置了吗
      

  12.   

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>main.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
    我是这样配置的,有问题嘛?]
    真是不好意思,麻烦了你们这么久了.
      

  13.   

    你的else后面怎么没有“{}”两个语句应该用“{}”了
    应该是if(){
            if(){      }else{
        .......
    }
       
      }else{
        ......
       }
    而且当你成功的时候,你没有转向啊//return mapping.findForward("Toindex"); 
    你给注释掉了!!
      

  14.   

    谢谢了.我会给分的.
    不过源码是这样的,不好意思,因为显示问题搞错了.
    public ActionForward execute (ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
    LogonForm logon = (LogonForm) form;// TODO Auto-generated method stub
    String username = new String(logon.getUsername().getBytes("iso8859-1"),"GB2312");
    //String password = new String(logon.getPassword().getBytes("iso8859-1"),"GB2312");
      String password = logon.getPassword();
     
    // JspWrite out=pageContext.getOut();
    //.println("helloword!");
    if(username!=null && password!=null){
    HttpSession  httpsession = request.getSession();
    Session session = HibernateSessionFactory.getSession();
    TabUser user =(TabUser) session.createQuery("from TabUser where userName=:name").setString("name", username).uniqueResult();
    if(user!=null){
    if(user.getPassword().equals(password)){
    httpsession.setAttribute("user", user);
    request.setAttribute("logon", "登陆成功!");
    //return mapping.findForward("Toindex");
    }else
    request.setAttribute("logon", "你输入的密码不正确");
    }else 
    request.setAttribute("logon", "此用户不存在");
    HibernateSessionFactory.closeSession();
    }else
    request.setAttribute("logon", "输入内容不能为空!");
     return mapping.findForward("Toindex");
    }
    }
      

  15.   

    你的代码有些乱,没看清楚,呵呵,
    你的意思是显示的index.jsp出错了,没有接收到request的值??
      

  16.   

    不是没显示index.jsp 
    还是停留在原来的画面,
    浏览器状态栏显示的是:
    等待http://localhost:8080/infoex/logon.do
    不过,还是要谢谢你的.
      

  17.   

    应该是你的if,else代码有问题,试验下将:
    if(username!=null && password!=null)修改为
    if(!("".equals(username))&&!("".equals(password)))