导入jar包ValidateCode.jar
自定义result类 继承StrutsResultSupport类
import cn.dsna.util.images.ValidateCode;
import com.opensymphony.xwork2.ActionInvocation;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.result.StrutsResultSupport;
import javax.servlet.http.HttpServletResponse;
/**
* @program: struts2_02
* @description
* @author: LIANG
* @create: 2021-01-21 16:29
**/
public class CAPTCHAResult extends StrutsResultSupport {
private int width;//验证码宽度
private int height;//验证码高度
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
@Override
protected void doExecute(String s, ActionInvocation actionInvocation) throws Exception {
//生成验证码
//创建验证码对象
ValidateCode code=new ValidateCode(width,height,4,6);
//获取response对象
System.out.println(code.getCode());
HttpServletResponse response= ServletActionContext.getResponse();
//把图片返回给客户端
code.write(response.getOutputStream());
}
}
全局配置验证码result 类型
<package name="MYcaptcha" extends="struts-default" abstract="true">
<!-- 声明一个验证码的结果类型(全局)-->
<result-types>
<result-type name="captcha" class="org.ccit.com.web.action.result.CAPTCHAResult"></result-type>
</result-types>
</package>
<package name="p4" extends="MYcaptcha" namespace="/login_p4">
<!-- 局部-->
<!-- <result-types>-->
<!-- <result-type name="captcha" class="org.ccit.com.web.action.result.CAPTCHAResult"></result-type>-->
<!-- </result-types>-->
<action name="login01" class="org.ccit.com.web.action.login01">
<result name="success" type="captcha">
<param name="width">120</param>
<param name="height">30</param>
</result>
</action>
</package>