1.在Action类中获得HttpServletResponse对象的方法
使用ServletActionContext类
Struts2为我们提供了一种最简单的方法获得HttpServletResponse及其他对象。
这就是org.apache.struts2.ServletActionContext类。
我们可以直接使用ServletActionContext类的getRequest、getResponse方法来获得HttpServletRequest、HttpServletResponse对象。
代码如下:
2.在Action类中获得HttpServletRequest对象的方法,和request.getParameterMap()用法笔记
request.getParameterMap()返回的是一个Map类型的值,
该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系。
这个返回值有个特别之处——只能读。不像普通的Map类型数据一样可以修改。
这是因为服务器为了实现一定的安全规范,所作的限制。
比如WebLogic,Tomcat,Resin,JBoss等服务器均实现了此规范。
3.HashMap遍历的两种方式,推荐使用entrySet()
http://blog.csdn.net/xueyepiaoling/article/details/5217709
4.使用struts2中的org.apache.struts2.ServletActionContext得到请求对象,并通过session传递参数
使用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 () {
}
});