Action中:
public String delete() {
employeeService.delete(id);
return<span style="color:#ff0000;"> SUCCESS</span>;
}
Struts.xml中:
<action name="emp-*" class="employeeAction" method="{1}">
<result name="list">/WEB-INF/views/emp-list.jsp</result>
<result name="<span style="color:#ff0000;">SUCCESS</span>" type="redirect">/emp-list</result>
</action>
</package>
则报错:No result defined for action com.java.ssh.actions.EmployeeAction and result
原因就是: Action中的自定义的常量值SUCCESS,在Struts2配置文件中应该是小写success!
Struts2 配置文件result的name属性和type属性:
Name属性 SUCCESS:Action正确的执行完成,返回相应的视图,success是 name属性的默认值; NONE:表示Action正确的执行完成,但并不返回任何视图; ERROR:表示Action执行失败,返回到 错误处理视图; INPUT:Action的执行,需要从前端界面获取参数,INPUT就是代表这个参数输入的界面,一般在应用中,会对这些参数进 行验证,如果验证没有通过,将自动返回到该视图; LOGIN:Action因为用户没有登陆的原因没有正确执行,将返回该登陆视图,要求用户进行 登陆验证。 Type属性: dispatcher:请求转发,底层调用RequestDispatcher的forward()或include()方 法,dispatcher是type属性的默认值,通常用于转向一个JSP,localtion指定JSP的位置,parse如果为false表示 location的值不会被当作OGNL解析,默认为true; redirect:重定向,新页面无法显示Action中的数据,因为底层调用 response.sendRedirect("")方法,无法共享请求范围内的数据,参数与dispatcher用法相同; |