0

在这里的人的帮助下,我设法让我的项目调用没有后缀的包的默认操作.htmindex.jsp但是,如果我在没有正斜杠的情况下调用 URL ,则请求最终会出现在 webapp 文件夹中。

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
    <constant name="struts.action.extension" value="htm,," />
    <constant name="struts.objectFactory" value="spring" />  
    <constant name="struts.devMode" value="true"/>

    ...

    <package name="home" namespace="/secured" extends="default">
        <default-action-ref name="index" />

        <action name="index" class="homeAction" method="execute">
            <result name="success" type="tiles">home</result>
        </action>
    </package>
</struts>

如果我调用http://someurl/someproject/secured/,则会执行操作,但调用 URLhttp://someurl/someproject/secured最终会到达文件index.jsp

该怎么办?谢谢

4

1 回答 1

1

当您调用http://someurl/someproject/securedurl时,secured它被视为无后缀的操作,因为您已配置操作可以有空后缀(顺便说一句,这也是默认的)。如果您希望此 url 重定向到命名空间,您可以在具有空或命名空间的包/secured中声明secured带有结果的操作。redirectAction/

<package name="..." namespace="/" extends="struts-default">
  ...
  <action name="secured">
    <result type="redirectAction">
      <param name="actionName">index</param>
      <param name="namespace">/secured</param>
    </result>
  </action>
  ...
</package>
于 2013-10-18T10:30:45.527 回答