package org.apache.struts2.dispatcher;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.Result;
import com.opensymphony.xwork2.util.TextParseUtil;
import com.opensymphony.xwork2.util.TextParseUtil.ParsedValueEvaluator;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import org.apache.struts2.StrutsStatics; public abstract class StrutsResultSupport
implements Result, StrutsStatics
{
private static final Logger LOG = LoggerFactory.getLogger(StrutsResultSupport.class);
public static final String DEFAULT_PARAM = "location";
private boolean parse;
private boolean encode;
private String location;
private String lastFinalLocation; public StrutsResultSupport()
{
this(null, true, false);
} public StrutsResultSupport(String location) {
this(location, true, false);
} public StrutsResultSupport(String location, boolean parse, boolean encode) {
this.location = location;
this.parse = parse;
this.encode = encode;
} public void setLocation(String location)
{
this.location = location;
} public String getLocation()
{
return this.location;
} public String getLastFinalLocation()
{
return this.lastFinalLocation;
} public void setParse(boolean parse)
{
this.parse = parse;
} public void setEncode(boolean encode)
{
this.encode = encode;
} public void execute(ActionInvocation invocation)
throws Exception
{
this.lastFinalLocation = conditionalParse(this.location, invocation);
doExecute(this.lastFinalLocation, invocation);
} protected String conditionalParse(String param, ActionInvocation invocation)
{
if ((this.parse) && (param != null) && (invocation != null)) {
return TextParseUtil.translateVariables(param, invocation.getStack(), new TextParseUtil.ParsedValueEvaluator()
{
public Object evaluate(String parsedValue) {
if ((StrutsResultSupport.this.encode) &&
(parsedValue != null))
{
try
{
return URLEncoder.encode(parsedValue, "UTF-8");
}
catch (UnsupportedEncodingException e) {
if (StrutsResultSupport.LOG.isWarnEnabled()) {
StrutsResultSupport.LOG.warn("error while trying to encode [" + parsedValue + "]", e, new String[0]);
}
}
} return parsedValue;
}
});
}
return param;
} protected abstract void doExecute(String paramString, ActionInvocation paramActionInvocation)
throws Exception;
}

**********************************************************

最新文章

  1. 通过pustil模块取pid及对应的pidname
  2. 网页qq客服代码并自定义图片
  3. pct xcode7
  4. 手机抓包-fiddler
  5. php 指针遍历、预定义数组和常用函数
  6. 《30天自制操作系统》02_day_学习笔记
  7. php时间函数整理
  8. NYOJ-289 苹果 289 AC(01背包) 分类: NYOJ 2014-01-01 21:30 178人阅读 评论(0) 收藏
  9. PowerMock注解PowerMockIgnore的使用方法
  10. 别指望一文读懂Java并发之从一个线程开始
  11. 浏览器的统一指针事件:Pointer Event
  12. Opencv 330 如何進行圖像的旋轉?
  13. ZooKeeper的使用---Java程序
  14. RMAN restore fails with ORA-01180: can not create datafile 1
  15. webpack学习笔记(三)
  16. 2018.4.25-ml笔记(梯度下降)
  17. 【读书笔记】iOS-更改布局行为
  18. 精通Web Analytics 2.0 (13) 第十一章:变身分析忍者的指导原则
  19. 计算器的改良(NOIP2000)
  20. 【洛谷P2114】起床困难综合征 位运算+贪心

热门文章

  1. 【学习笔记】js中undefined和null的区别和联系
  2. Linux下环境搭建(三)——jmeter+ant配置
  3. iOS 自定义读写文件
  4. iOS 画圆图片的几种方法
  5. c语言中的->代表什么意思
  6. CSS-学习笔记四
  7. HDU 4276 The Ghost Blows Light (树形DP,变形)
  8. UWP中获取Encoding.Default
  9. 计算机图形学:贝塞尔曲线(Bezier Curve)
  10. CPP-基础:strcpy之于C++(