显示页面
struts.xml配置文件
这里使用到了json struts2结合的插件,请自己去下载那个jar包
action
- <%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
- <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
- <html>
- <head>
- <title>test</title>
- <metahttp-equiv="pragma"content="no-cache">
- <metahttp-equiv="cache-control"content="no-cache">
- <metahttp-equiv="expires"content="0">
- <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
- <metahttp-equiv="description"content="Thisismypage">
- <!--
- <linkrel="stylesheet"type="text/css"href="styles.css">
- -->
- </head>
- <scripttype="text/javascript"src="js/common/prototype.js"></script>
- <scriptlanguage="javascript"type="text/javascript">
- functiongetJson()
- {
- varurl='JSONExample.action';
- varpars='';
- varmyAjax=newAjax.Request(url,{
- method:'get',
- encoding:'UTF-8',
- parameters:pars,
- onComplete:function(json){
- varJSONobj=eval('('+json.responseText+')');
- varhtml="";
- varmenuid="";
- html+="<li>"+JSONobj.newName+"</li>";
- varints=JSONobj.ints;
- for(vari=0;i<ints.length;i++){
- html+="<li>"+ints[i]+"</li>";
- }
- varmap=JSONobj.map;
- for(arrayinmap){
- html+="<li>"+array+":"+map[array]+"</li>";
- }
- $("item").innerHTML=html;
- }
- });
- }
- </script>
- <body>
- <inputtype="button"name="button"id="button"onclick="getJson()"value="点击测试">
- <divid="item"></div>
- </body>
- </html>
struts.xml配置文件
- <packagename="example"extends="json-default">
- <actionname="JSONExample"class="jSONExample"method="executeJson">
- <resulttype="json"/>
- </action>
- </package>
action
- packageaction;
- importjava.util.HashMap;
- importjava.util.Map;
- importcom.googlecode.jsonplugin.annotations.JSON;
- importcom.opensymphony.xwork2.ActionSupport;
- /**
- *@author王盛武<ahref="sinlff@163.com"/>
- *@dateAug1,200812:10:35PM
- */
- publicclassJSONExampleextendsActionSupport{
- /**
- *
- */
- privatestaticfinallongserialVersionUID=4588482034890372410L;
- //封装请求参数的三个属性
- //format=例如"yyyy-MM-dd'T'HH:mm:ss"。
- privateStringfield1;
- privatetransientStringfield2;
- privateStringfield3;
- //封装处理结果的属性
- privateint[]ints={10,20};
- @SuppressWarnings("unchecked")
- privateMapmap=newHashMap();
- privateStringcustomName="custom";
- @SuppressWarnings("unchecked")
- publicStringexecuteJson(){
- map.put("name1","sinlff1");
- map.put("name2","sinlff2");
- map.put("name3","sinlff3");
- returnSUCCESS;
- }
- //三个请求参数对应的setter和getter方法
- @JSON(serialize=false)//format
- publicStringgetField1(){
- returnfield1;
- }
- publicvoidsetField1(Stringfield1){
- this.field1=field1;
- }
- @JSON(serialize=false)
- publicStringgetField2(){
- returnfield2;
- }
- publicvoidsetField2(Stringfield2){
- this.field2=field2;
- }
- @JSON(serialize=false)//format
- publicStringgetField3(){
- returnfield3;
- }
- publicvoidsetField3(Stringfield3){
- this.field3=field3;
- }
- publicvoidsetCustomName(StringcustomName){
- this.customName=customName;
- }
- //封装处理结果的属性的setter和getter方法
- publicint[]getInts(){
- returnints;
- }
- publicvoidsetInts(int[]ints){
- this.ints=ints;
- }
- @SuppressWarnings("unchecked")
- publicMapgetMap(){
- returnmap;
- }
- @SuppressWarnings("unchecked")
- publicvoidsetMap(Mapmap){
- this.map=map;
- }
- //使用注释语法来改变该属性序列化后的属性名
- @JSON(name="newName")
- publicStringgetCustomName(){
- returnthis.customName;
- }
- }