0

我有包含应用程序创建方法的操作类,如果应用程序保存成功,则返回“成功”。如您所见,我的 struts.xml 正在重定向到应用程序只读模式。当我重定向到“tenantId”(包含在会话中)的只读操作默认名称空间覆盖时

这是重定向网址

http://localhost:8080/scandium/tenantId/applicationView.html!tenantId?applicationId=40

为什么会有“!” 在网址中?它如何将默认命名空间更改为 "tenantId" ?

谁能帮我解决这个问题?

    <struts>

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

        <package name="default" namespace="/" extends="struts-default">
             <action name="createApplication" class="com.action.ApplicationAction" method="create">
                        type="tiles">/applicationReadOnlyBody.tiles</result>-->
                        <result name="success" type="redirectAction">
                            <param name="actionName">applicationView.html</param>
                           <!-- <param name="namespace">/</param> -->
                            <param name="applicationId">${appId}</param>
                        </result>
                        <result name="input" type="tiles">/new-application.tiles</result>
                </action>

              <action name="applicationView" class="com.action.ApplicationReadOnlyAction" method="viewApplication">
                    <result name="success" type="tiles">/applicationReadOnlyBody.tiles</result>
              </action>

    </package>

</struts>

先感谢您,

乌德西卡

4

2 回答 2

0

您的配置中有一些错误。“浮动” type="tiles... 和一个已关闭(但从未打开)的 html 注释标签。

改变这个:

<action name="createApplication" 
        class="com.action.ApplicationAction" 
        method="create">
        type="tiles">/applicationReadOnlyBody.tiles</result>-->

对此:

<action name="createApplication" 
        class="com.action.ApplicationAction" 
        method="create">

看看它是否有效或以某种方式改变......

于 2012-12-17T12:48:00.947 回答
0

它是您正确的 struts.xml 文件吗?您的 struts 文件似乎缺少图块的结果类型

<result-types>
    <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>

你的 struts.xml 应该是这样的:`

<struts>

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

        <package name="default" namespace="/" extends="struts-default">

<result-types>
    <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>

             <action name="createApplication" class="com.action.ApplicationAction" method="create">
                        type="tiles">/applicationReadOnlyBody.tiles</result>-->
                        <result name="success" type="redirectAction">
                            <param name="actionName">applicationView.html</param>
                           <!-- <param name="namespace">/</param> -->
                            <param name="applicationId">${appId}</param>
                        </result>
                        <result name="input" type="tiles">/new-application.tiles</result>
                </action>

              <action name="applicationView" class="com.action.ApplicationReadOnlyAction" method="viewApplication">
                    <result name="success" type="tiles">/applicationReadOnlyBody.tiles</result>
              </action>

    </package>

</struts>

`

并且在struts2中将redirectAction改为redirect。进行更改尝试并告诉我

于 2012-12-17T11:58:21.670 回答