ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

StrutsResultSupport的使用

2021-04-28 21:02:39  阅读:109  来源: 互联网

标签:String StrutsResultSupport result 使用 invocation stringName public contentTypeNam


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

 

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.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 Example: 
 *  
 *  
 *  
 **stringName**  
 *  
 *  
 */  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;  
    }  
}

 

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;  
    }  
      
}
<?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">resultparam>  
            result>  
        action>  
    package>  struts>

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

 

标签:String,StrutsResultSupport,result,使用,invocation,stringName,public,contentTypeNam
来源: https://blog.51cto.com/u_14612575/2740726

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有