基于struts的web应用开发总结(一)
2009-09-06 00:00:00 来源:WEB开发网八:
jsp端与action端交互,常常用如下方法:
(1).前台发送一个ajax请求,后台处理请求后返回一个jsp页面,前台用得到的jsp页面的html代码赋值给需要显示的元素,如div等。如:
Js代码
pars = "ENGAGE_INFO_ID="+$F("ENGAGE_INFO")+"&ENGAGE_DTS_IDLIST="+projCommJs.getCheckboxValue();
new Ajax.Request(this.modulePath+"addtoInfo.do",{
parameters:pars,
onCreate:function(){
},
onComplete:function(returnStr){
$("Engagediv").innerHTML = returnStr.responseText;
$("btnRefresh").fireEvent("onclick");
}
}
);
(2).前台发送一个ajax请求,后台处理请求后并不是返回一个jsp页面,而是构造一个html代码,再把这个html代码发送到前台。
Java代码
public static void responseText(HttpServletResponse res, String s){
//指定内容类型
res.setContentType("text/html;charset=GBK");
//禁止缓存
res.setHeader("Pragma","No-cache");
res.setHeader("Cache-Control","no-cache");
res.setDateHeader("Expires", 0);
try {
PrintWriter out = res.getWriter();
out.print(s);
out.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
3).前台发送请求,后台把需要在前台显示的值放在request或session中,前台可以用标准的jsp标签或自定义标签来分析request或session中的值来进行显示。这部分的内容可以看看书jsp与servlet的书,如:oreilly.JSP设计第二版等书。
九:
在前台发送ajax请求时,参数如果是一个表单,表单里有很多的元素,这时候不需要一个个去写,可以用Form.serialize(),如下:
Js代码
var pars = encodeURI(Form.serialize(document.forms[0]));
用这种方式传递到action端后,因为参数是经过编码的,所以,在action端需要解码,而不能只是能过request.getParameter()来取值。(如果前台是如form.submit()或是没有编码的参数传递过来就不需要),要不然汉字会是乱码。如下:
Java代码
private String urlDecode(String str) throws Exception{
try{
str = java.net.URLDecoder.decode(str, "UTF-8");
}catch (Exception ex){
System.out.println(ex.getMessage());
ex.printStackTrace();
}
return str;
}
编缉推荐阅读以下文章
- 基于struts的web应用开发总结(二)
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››web安全之信息刺探防范1
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››webqq 最新加密算法
- ››webdriver 数据库验证方法
- ››Struts2配置文件中redirect传递中文参数乱码的解决...
- ››WebSphere Application Server 7.0 XML Feature P...
- ››Web2.0网络时代基于社会影响力的声望值
- ››Web服务器搭建:配置Linux+Apache+Mysql+PHP(或Pe...
- ››WebLogic调整Java虚拟机性能优化参数
- ››基于JavaScript的网页版塔防游戏
更多精彩
赞助商链接