在Action类中获得HttpServletResponse,HttpServletRequest对象的方法

1.在Action类中获得HttpServletResponse对象的方法

使用ServletActionContext类
Struts2为我们提供了一种最简单的方法获得HttpServletResponse及其他对象。
这就是org.apache.struts2.ServletActionContext类。
我们可以直接使用ServletActionContext类的getRequest、getResponse方法来获得HttpServletRequest、HttpServletResponse对象。
代码如下:
//获取HttpServletResponse对象
HttpServletResponse response = ServletActionContext.getResponse()
//设置字符格式
response.setContentType("text/html;charset=utf-8");
//返回response值
response.getWriter().write("hello world");


2.在Action类中获得HttpServletRequest对象的方法,和request.getParameterMap()用法笔记

request.getParameterMap()返回的是一个Map类型的值,
该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系。
这个返回值有个特别之处——只能读。不像普通的Map类型数据一样可以修改。
这是因为服务器为了实现一定的安全规范,所作的限制。
比如WebLogic,Tomcat,Resin,JBoss等服务器均实现了此规范。

/***
 * 获取请求对象
 * /
protected HttpServletRequest getRequest(){
	return ServletActionContext.getRequest (); 
}
/**
 * 获取ParamterMap String[] 转换为 String
 * @param request
 * @return
 */
public Map getParameterMap(HttpServletRequest request){
	// 参数Map
	Map properties = request.getParameterMap();		
	// 返回值Map
	Map returnMap = new HashMap();
	Iterator entries = properties.entrySet().iterator();
	Map.Entry entry;
	String name = "";
	String value = "";
	while (entries.hasNext()) {
		entry = (Map.Entry) entries.next();
		name = (String) entry.getKey();
		Object valueObj = entry.getValue();
		if(null == valueObj){
			value = "";
		}else if(valueObj instanceof String[]){
			String[] values = (String[])valueObj;
			for(int i=0;i<values.length;i++){
				value = values[i] + ",";
			}
			value = value.substring(0, value.length()-1);
		}else{
			value = valueObj.toString();
		}
		returnMap.put(name, value);
	}
	return returnMap;		
}


//获取请求参数
String setPwd = getRequest().getParameter("setPwd");
//放在JSP的内置对象的request里值 
getRequest().setAttribute("msg", msg);


//获取HttpServletRequest和HttpServletResponse
private HttpServletRequest request = getRequest();
private HttpServletResponse response = ServletActionContext.getResponse();


//直接从request中获取参数
String ledIds = request.getParameter("v_masterId");
//将request对象放入map中
Map<String,String> map = getParameterMap(request);
String masterIds = map.get("masterIds");
//返回response值
response.getWriter().write("ok");
response.getWriter().write("fail");

3.HashMap遍历的两种方式,推荐使用entrySet()
http://blog.csdn.net/xueyepiaoling/article/details/5217709


4.使用struts2中的org.apache.struts2.ServletActionContext得到请求对象,并通过session传递参数

/***
 * 获取请求对象
 * */
protected HttpServletRequest getRequest(){
	return ServletActionContext.getRequest (); 
}
/***
 * 获取会话对象
 * */
protected javax.servlet.http.HttpSession getSession(){
	return getRequest().getSession(); 
}
/***
 * 设置Session参数与值
 * */
protected void setSessionAttribute(String attribute,Object attrValue){
	getSession().setAttribute(attribute, attrValue);
}


//设置session
String[] masterIdArr = masterIds.split(",");	//台账编号
setSessionAttribute("masterIdArr", masterIdArr);


//org.apache.struts2.ServletActionContext


/***
 * 获取请求对象
 * */
protected HttpServletRequest getRequest(){
	return ServletActionContext.getRequest (); 
}


/***
 * 获取会话对象
 * */
protected javax.servlet.http.HttpSession getSession(){
	return getRequest().getSession(); 
}


/***
 * 获取Session参数与值
 * */
protected Object getSessionAttribute(String attribute){
	return getSession().getAttribute(attribute);
}


//获取session
String[] masterIdArr = (String[]) getSessionAttribute("masterIdArr");


/ js /
$.ajax({
	url: path_bootPATH+"/ledger/ledgerCollect_getCollectTemplateTree.action",
	type: "post",
	data: {type : "ledger", status : "0"},
	async : false,//同步
	cache : false,
	success: function (text) {
		if(text == "[]"){
			mini.alert("<b>失败</b> <br/>没有默认树");
		}
		else if(text=="fail"){  
		
			 mini.alert("<b>失败</b> <br/>数据获取异常");
		} else {
			var o = mini.decode(text);//把字符串反序列化为JS对象	
			for(var i=0; i<o.length; i++) {
				if(o[i].pcode == null) {//o[0]自定义
				} else if(o[i].pcode == o[1].pcode){//审计对象情况,被审计对象o[1].pcode
					if(o[i].name == "被审计对象"){
						continue;
					}
					arr += o[i].name + ",";
				} else {
					arr2 += o[i].name + ",";
				}
			}
			arr=arr.substring(0,arr.length-1);//去除最后一个字符“,”
			arr2=arr2.substring(0,arr2.length-1);
			
			var masterType = "ledger";			//类型ledger
			var masterIds = v_masterId;			//台账编号v_ledgerMaster id拼接
			var masterName = v_masterName;		//项目名称v_ledgerMaster masterName拼接
			var deadline = "项目结束日期";			//固定项
			var finedItems = arr;				//其他条件,自定义项目名称collectTemplate name拼接
			var auditItems = arr2;				//被审计对象,审计对象情况
			$.ajax({
				url: path_bootPATH+"/ledger/ledgerCollect_queryLedgerDetail.action",
				type: "post",
				data: { 
					masterIds : masterIds,
					deadline : deadline,
					masterName : masterName,
					finedItems : finedItems,
					auditItems : auditItems,
					masterType : masterType
				},
				async : false,
				cache : false,
				success: function (text) {
					if(text=="ok"){  
						//通过location返回到页面下载表格
						console.info(location);
						location.href=path_bootPATH+"/ledger/ledgerCollect_queryLedgerDetail1.action";
					} else {
						showTips("danger", "<b>失败</b> <br/>数据获取异常");
					}
				},
				error: function () {
				}
			});
			
		}
	},
	error: function () {
	}
});






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值