action的动态调用<s:a action="login!redirect.action">redirect</s:a>无法成功,报404错误的原因
LoginAction.java 的内容:
package com.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private static final long serialVersionUID = 1L;
//重载execute()方法,返回SUCCESS
@Override
public String execute() throws Exception {
return SUCCESS;
}
//redirect()方法,返回ERROR
public String redirect() throws Exception {
System.out.println("进入redirect方法!");//用来测试jsp跳转过程中是否进入到此方法
return ERROR;
}
}
index.jsp 的核心代码
<body>
<s:a action="login">login</s:a><br/>
<s:a action="login!redirect.action">redirect</s:a>
<!-- Action的动态调用都用“!”隔开 -->
</body>
。。。。。。
struts中没打开DMI,即不支持动态调用,根本进入不了redirect()方法中,所以会有404错误。
只需要在配置文件struts.xml中(在struts标签之间加上如下代码):
<struts>
<!-- 设置struts允许动态调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
...
</struts>

浙公网安备 33010602011771号