Struts +Ajax下返回json数据总结
1、通过示例来实现Struts返回json数据,
在MyEclipse下添加的Struts支持,直接引入core 类库即可。
struts配置文件如下,以peron为例进行演示:
1 <struts> 2 <constant name="struts.devMode" value="true"></constant> 3 <constant name="struts.i18n.encoding" value="utf-8"></constant> 4 <package name="default" namespace="/" extends="json-default"> 5 <action name="person_*" class="com.aaa.controller.PersonAction" method="{1}"> 6 <result name="test1" type="json"> 7 </result> 8 <result name="success">/success.jsp</result> 9 <result name="error">/error.jsp</result> 10 </action> 11 </package> 12 </struts>
PersonAction示例:
public class PersonAction extends BaseAction { private Person person; private List<Person> list; private Map<String,Object> map; public List<Person> getList() { return list; } public void setList(List<Person> list) { this.list = list; } public Map<String, Object> getMap() { return map; } public void setMap(Map<String, Object> map) { this.map = map; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } PersonService p=new PersonService(); public String execute(){ p.save(person); return SUCCESS; } //查询返回json public String query(){ System.out.println(person); return "test1"; } //测试返回各种类型的json public String queryAll(){ Person p=new Person(); p.setId(1); p.setName("张三"); p.setSex("男"); p.setBirthday(Date.valueOf("1996-1-8")); Person p1=new Person(); p.setId(2); p.setName("张三2"); p.setSex("男"); p.setBirthday(Date.valueOf("1996-2-8")); list=new ArrayList<Person>(); list.add(p); list.add(p1); map=new HashMap<String, Object>(); map.put("01", p1); map.put("0", p); return "test1"; } }
jsp页面示例:
<script src="js/jquery-1.11.3.min.js"></script>
<script>
//ajax提交表单
function doSubmit(){
var url="person_queryAll.action";
$("#fm1").attr("action",url);
$("#fm1").submit();
}
//ajax提交数据并返回json
function doAjax(){
var person={
"person.id":1,
"person.name":"李四",
"person.sex":"男",
"person.birthday":"1999-1-1"
};
$.ajax({
url:"person_query.action",//提交地址
type:"post",//
data:person,
dataType:"json",
success:function(data){
console.log(data.person.id+":"+data.person.birthday);
},
error:function(e){
alert(e);
}
});
}
</script>
</head>
<body>
<form action="person" method="post" id="fm1">
<p>用户名:<input type="text" name="person.name"/></p>
<p>性别:<input type="text" name="person.sex" value="男"/></p>
<p>出生日期:<input type="text" name="person.birthday" value="1998-1-1"/></p>
<p>
<input type="submit" value="注册"/>
<input type="button" value="查询返回json" onclick="doSubmit()"/>
<input type="button" value="ajax提交数据" onclick="doAjax()"/>
</p>
</form>
</body>
执行查询返回json按钮的结果如下:
可以看到带有get属性的都可以返回json数据

执行 ajax提交数据 按钮 的结果如下:


浙公网安备 33010602011771号