1.结果视图:局部和全局逻辑视图
1.1 局部逻辑视图:只服务于当前的动作
1.2 全局逻辑视图:服务于所有的动作
//全局逻辑视图:所有动作没有name = success 的局部视图,到全局视图找
更好的利用package的继承性组织全局视图:
2.自定义结果类型:CAPTCHA图像
2.1所有的结果类型都是直接或间接的实现了Result接口
2.2自定义结果类型的开发步骤
1) 直接或间接实现Result接口
//输出随机验证码图片
public class CaptchaResult extends StrutsResultSupport {
private int width = 120;
private int height = 20;
public void setWidth(int width) {
this.width = width;
}
public void setHeight(int height) {
this.height = height;
}
protected void doExecute(String finalLocation, ActionInvocation invocation)
throws Exception {
ValidateCode code = new ValidateCode(width, height, 4, 9);
HttpServletResponse response = ServletActionContext.getResponse();
code.write(response.getOutputStream());
}
}
2) 在struts.xml中声明结果类型
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="default" extends="struts-default" abstract="true">
<result-types>
<result-type name="captcha" class="com.itheima.results.CaptchaResult"></result-type>
</result-types>
</package>
</struts>
3) 在动作中使用自定义的结果类型
<package name="p1" extends="default">
<action name="captcha">
<result name="success" type="captcha">
<param name="width">120</param>
<param name="height">25</param>
</result>
</action>
<action name="action1"></action>
</package>