StrutsResultSupport的利用详解编程语言

在有非凡情形时;假如没有异常信息,然则有错误而且有错误信息等内容;此时也需要进行友爱的错误处置惩罚的话,那么可以借助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</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>  
 *   
 * 
  
 * <!-- START SNIPPET: example -->  
 * <result name="success" type="string">  
 *   <param name="stringName">stringName</param>  
 * </result>  
 * <!-- END SNIPPET: example -->  
 * 

*
*/
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">result</param>   
            </result>   
        </action>   
    </package>   
</struts> 

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

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11694.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论