1.传统的写多个request接受参数方法。
2.struts2中的多个setter方法,getter方法
3.利用实体bean,让strut2 实例bean,少写setter方法,getter方法,表单name前面要加对象。如果action实现了ModelDriven接口,那么表单name前面不用加对象
1,2,3三种,为 form 表单传输或者通过URL地址添加参数传输,地址栏发生改变。
4. 利用Ajax中json数据格式进行异步传输(地址栏不发生改变):一般用于执行某操作之后,回调函数接受返回的消息,然后进行跳转。或通过回调函数接受返回的数据内容,加载到本页面。
5.
response.getWriter().write("{"msg":true}");
response.getWriter().write(JSONObject.fromObject("{msg:" + true + "}").toString());
这两种方式都可以,第一种多写一些双引号,json字符串的原始形式,第二种不是的,所以需要转型下。对象就是用这种转型,response.getWriter().write(JSONObject.fromObject(对象).toString());
list集合,就是response.getWriter().write(JSONObject.fromObject(list集合).toString())这样。
6.json接受和传送例子:
接受:
JSONObject jsonobject = JSONObject.fromObject(json);
System.out.println(jsonobject.get("score"));
StudentBean sb=(StudentBean)JSONObject.toBean(jsonobject,StudentBean.class);
System.out.println(sb.getName());
传送:
System.out.println(JSONObject.fromObject(sb));
response.setContentType("application/json; charset=utf-8");
//response.getWriter().write("{"name":"李鹏","score":1470,"xuehao":12212}");
response.getWriter().write("{"msg":true}");
response.getWriter().write(JSONObject.fromObject("{msg:" + true + "}").toString());
response.getWriter().close();
js端的:
$.post("student_add", {
json:jsonString
}, function(data) {
/*if(data.msg){
alert("保存成功");
window.location.href="stockholder_list";
//window.location.reload();
}else{
alert("保存失败")
}*/
//alert(data);
//alert(typeof(data));
//alert(data);
//if(data.valueOf("123")){
// alert("nihao");
//}
if(data.msg){
alert("保存成功");
window.location.href="student_list";
}else{
alert("保存失败")
}
/*alert(data.name);*/
});
Ajax网址:http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html
$.ajax({})例子:
$(".cha").click(function() {
var obj=new Object();
obj.username=$("input[name=username]").val();
var jsonString=JSON.stringify(obj);
alert(jsonString);
$.ajax({
type:"post",
url:"student_listByName",
data:{json:jsonString},
dataType:"json"
});
})
$.ajax()中传入是对象,与$.get().$.post()不一样,功能上更全。
$.get().$.post()中数据形式为:{json:jsonString} $.ajax中数据格式为:data:{json:jsonString},看来都必须是{key:value}形式,服务器端接收就是接收key,如果数据比较多,value就可以key/value的组合形式。
7.乱码解决问题的几种情况:tomcat服务器的编码,request设置编码,struts国际化设置编码,过滤器统一设置编码,数据库中编码设置。
8.jQuery 学习网址:http://www.jbxue.com/jb/jquery/