在有非凡情形时;假如没有异常信息,然则有错误而且有错误信息等内容;此时也需要进行友爱的错误处置惩罚的话,那么可以借助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