现在的位置: 首页 > 综合 > 正文

在web.xml里配置struts的action的访问后缀名

2013年08月03日 ⁄ 综合 ⁄ 共 2234字 ⁄ 字号 评论关闭
注意,考虑以下代码:
----------------------------------------------------------------------------------
jsp页面里的代码如下:
<html:form action="/login.adfadf">    《---------注意这里的路径
userName : <input type="text" name="userName"/><br/>
<html:submit/><html:cancel/>
</html:form>
----------------------------------------------------------------------------------
struts-config.xml里的相应配置如下:
    <action
      attribute="loginForm"
      input="/login.jsp"
      name="loginForm"
      path="/login"
      scope="request"
      type="com.lrm.struts.action.LoginAction"
      validate="false" />
----------------------------------------------------------------------------------
web.xml里的相应配置如下:
  <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>*.haha</url-pattern>    《------注意这里配置的路径
  </servlet-mapping>
----------------------------------------------------------------------------------
当点击jsp页面里的submit按钮时,结果是能够正常提交,并能够正确的找到相应的action,此时地址栏里显示的路径是login.haha
如果把上面jsp里面的代码改动如下:
----------------------------------------------------------------------------------
<form action="login.adfadf">    《---------注意这里的路径
userName : <input type="text" name="userName"/><br/>
<html:submit/><html:cancel/>
</form>
结果是不能够访问,报404错误
----------------------------------------------------------------------------
如果再将jsp里的代码改动如下:
<form action="login.haha">    《---------注意这里的路径
userName : <input type="text" name="userName"/><br/>
<html:submit/><html:cancel/>
</form>
结果是能够正常访问。
-----------------------------------------------------------------------------
结论:struts里的action不一定必须是以.do结尾,究竟以什么结尾取决于在web.xml里的配
置,如果你配置了.haha那么当你使用struts的form标签的时候,它会自动的把from里的
action路径加工成.haha形式的(即使你已经给form的action指定的为/login.do的形式)。但如果你使用的是普通form标签,那么你就必须要保证给其所指定的action要以一定.haha结尾,这样才能找到相应的action。

抱歉!评论已关闭.