js代码(可以用$.get() $.post() $.getJSON()方法来写,也可以用$.ajax()来写)
用$.get() $.post() $.getJSON()方法来返回json类型数据如下:
<span style="font-size:18px;">$.get(url,args,function(data){
},"json")
$.post(url,args,function(data){
},"json")
$.getJson(url,args,function(data){
}) </span>
实例(用ajax做数据的增删遍历):
$(document).ready(function(){
$("#txtHint").empty();
load();
var oBtn = $("#btn");
oBtn.click(function(){
var addsname = $("#suppliertype").val();
/*var url = "saveSupplierType?"
var data = "addsname="+addsname;
var args = {"time":new Date()};
$.get(url,data,args,function(){
//$("#txtHint").empty();
alert("here");
load();
});
*/
$.ajax({
url : "saveSupplierType?",
data: "addsname="+addsname,
context : $("#txtHint"),
success : function() {
$("#txtHint").empty();
load();
}
});
});
});
function del(url,data){
var surl = url+"?delsid="+data;
$.ajax({
url : surl,
context : $("#txtHint"),
success : function() {
$("#txtHint").empty();
load();
}
});
}
function load(){
var url = "findSupplierType";
var args = {"time":new Date()};
$.getJSON(url,args,function(data){
/*用 $.each来拿json的值,或者用
* var name = data.person.name;
* person是json的名字,name是其属性,可以用这样的方法直接拿到json里的值,然后将值返回即可
*/
var result = JSON.parse(data);
$.each(result,function(idx,item){
var stid = item.stid;
var sname = item.sname;
$("#txtHint").append("<tr>")
.append("<td id='stid'>"+stid+"</td>")
.append("<td id='stid'>"+sname+"</td>")
.append("<a href=\"javascript:del('delSupplierType','"+stid+"')\">删除</a>")
.append("</tr>");
});
});
}
/*$.ajax({
type:"Get",
context : $("#txtHint"),
dataType:"json",
url:"findSupplierType",
success : function(data) {
//$(this).html(data);
var result = JSON.parse(data);
$.each(result,function(idx,item){
var row = $("#content").clone();
var id = item.stid;
row.find("#stid").text(item.stid);
row.find("#sname").text(item.sname);
row.find("#delSupplierType").html("<a href=\"javascript:del('delSupplierType','"+id+"')\">删除</a>");
row.appendTo("#datas");//添加到模板的容器中
});
}
});
*/
java 中的action部分(dataMap为String类型,用JSONArray.fromObject(supplierTypeList).toString()处理返回值):
public String delSupplierType() throws Exception{
supplierService.delSupplierType(delsid);
return SUCCESS;
}
public String saveSupplierType() throws Exception{
SupplierType supplierType = new SupplierType();
supplierType.setSname(addsname);
supplierService.saveSupplierType(supplierType);
return SUCCESS;
}
public String findSupplierTypeList() throws Exception {
supplierTypeList = supplierService.findSupplierType();
dataMap = JSONArray.fromObject(supplierTypeList).toString();
return SUCCESS;
}
struts2的struts.xml配置(继承json-default,返回的值为json类型)
<package name="json" extends="json-default" namespace="/">
<action name="findSupplierType" class="supplierAction" method="findSupplierTypeList">
<result type="json">
<!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->
<!-- 默认将会序列所有有返回值的getter方法的值,而无论该方法是否有对应属性 -->
<param name="root">dataMap</param>
<!-- 这里指定将序列化dataMap中的那些属性 -->
<param name="includeProperties">supplierTypeList.*</param>
<param name="excludeProperties">
SUCCESS
</param>
</result>
</action>
<action name="delSupplierType" class="supplierAction" method="delSupplierType">
<result type="json">
<param name="excludeProperties">
SUCCESS
</param>
</result>
</action>
<action name="saveSupplierType" class="supplierAction" method="saveSupplierType">
<result type="json">
<param name="excludeProperties">
SUCCESS
</param>
</result>
</action>
</package>