Struts2命名空间在重定向url时发生更改

Struts2命名空间在重定向url时发生更改,struts2,struts,Struts2,Struts,我有一个包含应用程序创建方法的action类,如果应用程序保存成功,它将返回“success”。正如您可以看到的那样,我正在重定向到应用程序只读模式。当我重定向到只读操作时,默认名称空间由“tenantId”覆盖(包含在会话中) 这是重定向url http://localhost:8080/scandium/tenantId/applicationView.html!tenantId?applicationId=40 为什么url中有“!”呢? 它如何将默认名称空间更改为“tenantId”

我有一个包含应用程序创建方法的action类,如果应用程序保存成功,它将返回“success”。正如您可以看到的那样,我正在重定向到应用程序只读模式。当我重定向到只读操作时,默认名称空间由“tenantId”覆盖(包含在会话中)

这是重定向url

http://localhost:8080/scandium/tenantId/applicationView.html!tenantId?applicationId=40
为什么url中有“!”呢? 它如何将默认名称空间更改为“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>

type=“tiles”>/applicationReadOnlyBody.tiles-->
applicationView.html
${appId}
/新应用程序.tiles
/applicationReadOnlyBody.tiles
提前谢谢大家,


Udeshika

它是您正确的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>

type=“tiles”>/applicationReadOnlyBody.tiles-->
applicationView.html
${appId}
/新应用程序.tiles
/applicationReadOnlyBody.tiles
`


在struts2中,重定向操作更改为重定向。进行更改尝试并告诉我您的配置中有一些错误。一个“floating”type=“tiles…”和一个关闭(但从未打开)的html注释标记

更改此项:

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

type=“tiles”>/applicationReadOnlyBody.tiles-->
为此:

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


看看它是否能正常工作或有什么变化…

谢谢你的回复,它已经存在了,我已经把struts的一些部分放在那里了。struts 2中存在xml
redirectAction
redirect
直接用于url,而
redirectAction
用于操作。请参阅