前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >StrutsResultSupport的使用

StrutsResultSupport的使用

作者头像
HUC思梦
发布2020-09-03 14:43:51
4220
发布2020-09-03 14:43:51
举报

在有特殊情况时;如果没有异常信息,但是有错误并且有错误信息等内容;此时也需要进行友好的错误处理的话,那么可以借助StrutsResultSupport 返回结果类型来实现特定处理。此种方式先需要继承StrutsResultSupport ,然后可以在子类中获取本次请求的相关信息,再根据相关信息进行结果处理:

代码语言:javascript
复制
package commons.struts2;  
import <a href="http://lib.csdn.net/base/java" class='replace_word' title="Java 知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>.io.PrintWriter;  
import javax.servlet.http.HttpServletResponse;  
import org.apache.struts2.dispatcher.StrutsResultSupport;  
import com.opensymphony.xwork2.ActionInvocation;  
/** 
 * result type for output string in action 
 *  
 * @author songwei,yaolei <b>Example:</b> 
 *  
 * <pre> 
 * <!-- START SNIPPET: example --> 
 * <result name="success" type="string"> 
 *   <param name="stringName">stringName</param> 
 * </result> 
 * <!-- END SNIPPET: example --> 
 * </pre> 
 *  
 */  
public class StringResultType extends StrutsResultSupport {  
    private static final long serialVersionUID = 1L;  
    private String contentTypeName;  
    private String stringName = "";  
    public StringResultType() {  
        super();  
    }  
    public StringResultType(String location) {  
        super(location);  
    }  
    protected void doExecute(String finalLocation, ActionInvocation invocation)  
            throws Exception {  
        HttpServletResponse response = (HttpServletResponse) invocation  
                .getInvocationContext().get(HTTP_RESPONSE);  
        // String contentType = (String)  
        // invocation.getStack().findValue(conditionalParse(contentTypeName,  
        // invocation));  
        String contentType = conditionalParse(contentTypeName, invocation);  
        if (contentType == null) {  
            contentType = "text/plain; charset=UTF-8";  
        }  
        response.setContentType(contentType);  
        PrintWriter out = response.getWriter();  
        // String result = conditionalParse(stringName, invocation);  
        String result = (String) invocation.getStack().findValue(stringName);  
        out.println(result);  
        out.flush();  
        out.close();  
    }  
    public String getContentTypeName() {  
        return contentTypeName;  
    }  
    public void setContentTypeName(String contentTypeName) {  
        this.contentTypeName = contentTypeName;  
    }  
    public String getStringName() {  
        return stringName;  
    }  
    public void setStringName(String stringName) {  
        this.stringName = stringName;  
    }  
} 
代码语言:javascript
复制
package test;  
import com.opensymphony.xwork2.ActionSupport;  
public class MyAction extends ActionSupport{  
    String  result="abc";  
    public String ajax() {  
        return "ajaxResponse";  
    }  
    // getter && setter  
    public String getResult() {  
        return result;  
    }  
    public void setResult(String result) {  
        this.result = result;  
    }  
      
} 
代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE struts PUBLIC  
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
    "http://struts.apache.org/dtds/struts-2.0.dtd">  
<struts>  
    <package name="test" extends="struts-default">  
        <result-types>  
            <result-type name="string" class="test.StringResultType"></result-type>  
        </result-types>  
          
        <action name="myAction" class="test.MyAction" >  
            <result name="ajaxResponse" type="string">  
                <param name="stringName">result</param>  
            </result>  
        </action>  
    </package>  
</struts> 

这里定义返回Action的String result变量,即“abc”。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-08-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档