在 Struts 2 中找不到指定操作的配置

问题描述 投票:0回答:1

我已经完成了登录表单的验证。工作正常,但是输入正确的

username
password
后,没有执行任何操作,登录成功后也打不开JSP页面。

这是我的登录表格:

         <s:form validate="true"   action="login">
        <br>
         <table class="bg" cellspacing="0">
        <tr class="logindiv">
          <td >
          </td>`enter code here`
         <td>

       Sign In
       </td>
         </tr>

           <tr>
          <td>
          <s:textfield label="Username" name="obj2.user" cssStyle="height:25px;                   width:150px;"></s:textfield>
         </td>
              </tr>



            <tr>
       <td>
       <s:password label="Password" name="obj2.pass"  cssStyle="height:25px;width:150px;"></s:password>
           </td>
            </tr>

                <tr>
                 <td>

             <center>&nbsp;
               <s:submit value="Login" cssClass="login"></s:submit>
              </center>

                  </td>
                 </tr>


            </table>

               </s:form>

struts.xml
:

          <?xml version="1.0" encoding="UTF-8"?>
         <!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
            "http://struts.apache.org/dtds/struts-2.0.dtd">



     <struts>

          <constant name="struts.devMode" value="true" />

           <package name="default" namespace="/" extends="struts-default">
       <action name="login" class="IndianUserActionModule.indianAction" method="Login">
          <result name="input">index.jsp</result>
         <result name="success">IndianHome.jsp</result>
         <result name="fail">index.jsp</result>
      </action>

         </package>

        </struts>
jsp struts2 forms-authentication struts2-namespace
1个回答
0
投票

在 struts 配置中,您将操作映射到包配置的特定命名空间。但在 JSP 表单中,您将操作映射到 default 命名空间。这些是不同的命名空间,并且您的操作配置在 default 命名空间中找不到,因此失败。您应该使用

s:form
标签的命名空间属性来指定用于映射操作的命名空间。例如

<s:form validate="true" namespace="/"  action="login"> 

有一个示例可以让您更好地理解命名空间概念。

© www.soinside.com 2019 - 2024. All rights reserved.