标签:没有 fast 帮助 span tps 知识 action attribute shm
之前在项目中,无论是指定图片路径,还是文件路径(js文件,css文件)亦或者是指定action,我都是爱用相对路径,因为很多文件我都没有进行分类,都是胡乱扔在同一个文件路径中,所以使用相对路径较轻松,但是随着项目规模逐渐变大,采用分类进行管理,会发现很多相对路径不能使用,只能使用据对路径,我之前一直使用"../"来回到根路径,在进行追加路径找到文件,而事实上,只要出现多次转跳到本身页面的情况,其中的路径就会出现累加错误
而使用“${pageContext.request.contextPath }/”就可以解决大多是问题,${pageContext.request.contextPath}是通过 get方法去取的,先使用pageContext.getRequest()得到HttpServletRequest对象,再调用 HttpServletRequest的getContextPath方法作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的
El表达式的写法:${pageContext.request.contextPath}
jsp的写法:<%=request.getContextPath()%>
既然是EL表达式,就应该在jsp中使用了
在进行往完一系列操作后返回的结果放到哪里,又如何在页面中使用?我们可以将结果放入值栈或者域对象(就是request中了),这样在页面中使用EL+JSTL或者Struts2标签就可以取出值使用了
放入值栈方式一 :
ServletActionContext.getContext().getValueStack().set("list", list); //ServletActionContext是Struts2中的类,可以使用set方法将集合放入 ActionContext.getContext().getValueStack().push(pageBean); //可以将对象使用push方法放入值栈,也可以放入集合 //ServletActionContext这个类直接继承了ActionContext
页面中我是用struts2标签select
<s:select name="department.id" list="list" listKey="id" listValue="dname" headerKey="" headerValue="---请选择部门---"/>
放入值栈方式二 :
先定义一个list,生成其get方法
private List<Customer> list; public List<Customer> getList() { return list; }
在要放入值栈中的action方法放入到这个list就行了。集合如此,其他对象也是用类似方法
放入域对象方式 :
ServletActionContext.getRequest().setAttribute("list", list); //就是得到request,将数据放进去
想放到session中就使用getSession()就行了
使用的是fastjson.jar这个工具jar包,是阿里巴巴开发的
String json=JSON.toJSONString(manager); //manager是个对象,JSON类就是这个jar包中的 ServletActionContext.getResponse().setContentType("application/json;charset=utf-8"); //指定写入request中的数据格式 ServletActionContext.getResponse().getWriter().write(json); //写入request
值得说的是在使用EasyUI的Datagrid 数据网格时,这个组件要求返回的json格式类似{total:xx,rows:[{user_id:1,user_name:‘tom‘}]}
Map map=new HashMap(); //使用map帮助我们 map.put("total", pageBean.getTotalCount()); //根据要求的格式将数据放入map map.put("rows", pageBean.getList()); String json = JSON.toJSONString(map); //将这个map生成json ServletActionContext.getResponse().setContentType("application/json;charset=utf-8"); ServletActionContext.getResponse().getWriter().write(json);
标签:没有 fast 帮助 span tps 知识 action attribute shm
原文地址:http://www.cnblogs.com/lz2017/p/6848584.html