Redirect 重定向到Struts 2中的默认操作
我有一个在根命名空间中定义的名称为空字符串的操作,如果找到某个结果,我想从另一个操作重定向到该操作,但它似乎不起作用 这里是默认操作Redirect 重定向到Struts 2中的默认操作,redirect,struts2,Redirect,Struts2,我有一个在根命名空间中定义的名称为空字符串的操作,如果找到某个结果,我想从另一个操作重定向到该操作,但它似乎不起作用 这里是默认操作 <action name="" class="com.example.actions.HomeAction"> <result name="success" type="freemarker">freemarker/home.ftl</result> </action> freemarker/home.f
<action name="" class="com.example.actions.HomeAction">
<result name="success" type="freemarker">freemarker/home.ftl</result>
</action>
freemarker/home.ftl
我在包的全局结果中定义重定向:
<global-results>
<result name="sendToRouting" type="redirectAction">
<param name="actionName"></param>
<param name="namespace">/</param>
</result>
</global-results>
/
我试着去掉actionName参数,但不起作用。如果我为HomeAction输入一个名称,并在全局结果中按名称引用它,那么我假设问题在于重定向缺少操作名称
有什么想法吗?我想你要做的是使用
:
freemarker/home.ftl
对不起…误读了问题:
尝试将
type=“redirectAction”
更改为type=“redirect”
,我确信redirectAction现在是重定向的。是否因为actionName参数为空而收到NullPointerException?我通过提供一个计算结果为空字符串的字符串来解决这个问题:
<param name="actionName">${}</param>
${}
仍然在寻找一个更“正确”的解决方案,但是…将type改为type=“redirect action”我正在使用struts 2.1.6,我读到在以前的版本中redirect action被切换为redirect action。我很好奇,有什么“好”的理由不给这个操作命名?例如,“默认”还是什么?我不认为使用没有名称的操作有任何好处。也许OP和我的问题一样:客户端希望使用
host/myApp/admin
访问,而不使用任何操作名称。嗯,这是一个有趣的解决方法。我也必须尝试一下。不,redirect
用于URL,而redirectAction
允许您直接引用操作名称。
<param name="actionName">${}</param>