`
it_iweb
  • 浏览: 9362 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

struts1+ajax+json/xml

 
阅读更多

Struts1+JQuery+JSON/XML的例子

1.Struts+JQuery+XML

struts-config.xml如下:

  1. <action
  2. attribute="testForm"
  3. input="/indexxml.jsp"
  4. name="testForm"
  5. path="/testxml"
  6. scope="request"
  7. type="action.TestXmlAction"
  8. validate="false"/>

TestxmlAction.java如下:

  1. /*
  2. *GeneratedbyMyEclipseStruts
  3. *Templatepath:templates/java/JavaClass.vtl
  4. */
  5. packageaction;
  6. importjava.io.IOException;
  7. importjava.io.PrintWriter;
  8. importjava.util.ArrayList;
  9. importjava.util.List;
  10. importjavax.servlet.http.HttpServletRequest;
  11. importjavax.servlet.http.HttpServletResponse;
  12. importorg.apache.struts.action.Action;
  13. importorg.apache.struts.action.ActionForm;
  14. importorg.apache.struts.action.ActionForward;
  15. importorg.apache.struts.action.ActionMapping;
  16. importform.TestForm;
  17. /**
  18. *MyEclipseStruts
  19. *Creationdate:03-05-2010
  20. *
  21. *XDocletdefinition:
  22. *@struts.actionpath="/test"name="testForm"input="index.jsp"scope="request"
  23. */
  24. publicclassTestXmlActionextendsAction{
  25. /*
  26. *GeneratedMethods
  27. */
  28. /**
  29. *Methodexecute
  30. *@parammapping
  31. *@paramform
  32. *@paramrequest
  33. *@paramresponse
  34. *@returnActionForward
  35. *@throwsIOException
  36. */
  37. publicActionForwardexecute(ActionMappingmapping,ActionFormform,
  38. HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{
  39. TestFormtestForm=(TestForm)form;//TODOAuto-generatedmethodstub
  40. response.setContentType("text/xml;charset=utf-8");//传输xml时要用html
  41. response.setCharacterEncoding("utf-8");
  42. System.out.println(testForm.getTestvalue());
  43. PrintWriterpw=response.getWriter();
  44. //1.传递单个参数,注意应将text/xml改为text/html
  45. /*inti=9;
  46. pw.print(i);
  47. pw.flush();*/
  48. //2.生成xml文件返回给html页面,此时list里面为单个String
  49. /*StringBuilderxml=newStringBuilder();
  50. List<String>list=newArrayList<String>();
  51. list.add("aaa");
  52. list.add("bbb");
  53. list.add("ccc");
  54. xml.append("<items>");
  55. for(Objecto:list){
  56. xml.append("<item>").append(o).append("</item>");
  57. }
  58. xml.append("</items>");
  59. System.out.println(xml);
  60. pw.print(xml.toString());
  61. pw.flush();*/
  62. //3.生成xml文件返回给html页面,此时list里面为对象类型
  63. /*response.setContentType("text/xml;charset=utf-8");
  64. StringBuilderxml=newStringBuilder();
  65. List<User>list=newArrayList<User>();
  66. Useruser1=newUser();
  67. Useruser2=newUser();
  68. Useruser3=newUser();
  69. user1.setUsername("username1");
  70. user1.setPassword(1);
  71. user2.setUsername("username2");
  72. user2.setPassword(2);
  73. user3.setUsername("username3");
  74. user3.setPassword(3);
  75. list.add(user1);
  76. list.add(user2);
  77. list.add(user3);
  78. xml.append("<items>");
  79. for(inti=0;i<list.size();i++){
  80. xml.append("<itemslist>");
  81. xml.append("<username>").append(list.get(i).getUsername()).append("</username>");
  82. xml.append("<password>").append(list.get(i).getPassword()).append("</password>");
  83. xml.append("</itemslist>");
  84. }
  85. xml.append("</items>");
  86. System.out.println(xml);
  87. pw.print(xml.toString());*/
  88. returnnull;
  89. }
  90. }

辅助类User:

  1. packageaction;
  2. publicclassUser{
  3. privateStringusername;
  4. privateintpassword;
  5. publicStringgetUsername(){
  6. returnusername;
  7. }
  8. publicvoidsetUsername(Stringusername){
  9. this.username=username;
  10. }
  11. publicintgetPassword(){
  12. returnpassword;
  13. }
  14. publicvoidsetPassword(intpassword){
  15. this.password=password;
  16. }
  17. }

indexxml.jsp如下:

  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
  2. <%
  3. Stringpath=request.getContextPath();
  4. StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  7. <html>
  8. <head>
  9. <basehref="<%=basePath%>">
  10. <title>MyStrutsJQueryJson</title>
  11. <metahttp-equiv="pragma"content="no-cache">
  12. <metahttp-equiv="cache-control"content="no-cache">
  13. <metahttp-equiv="expires"content="0">
  14. <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
  15. <metahttp-equiv="description"content="Thisismypage">
  16. <!--
  17. <linkrel="stylesheet"type="text/css"href="styles.css">
  18. -->
  19. <scripttype="text/javascript"src="/S1.2SHJQuery/js/jquery-1.4.2.js"></script>
  20. <scripttype="text/javascript">
  21. //1.jquery单独传递单个参数
  22. /*$(function(){
  23. alert("start");
  24. $.post("testxml.do",{testvalue:$('#test').val()},function(data){
  25. alert(data);
  26. })
  27. })*/
  28. //2.jquery单独传递含单个参数的list,采用的是xml形式
  29. $(function(){
  30. $.post("testxml.do",{testvalue:$('#test').val()},function(data){
  31. varitems=data.getElementsByTagName("item");
  32. alert(items.length);
  33. for(vari=0;i<items.length;i++){
  34. alert(items[i].childNodes[0].nodeValue);
  35. }
  36. })
  37. })
  38. //3.jquery单独传递含对象类型的list,,采用的是xml形式
  39. /*$(function(){
  40. $.post("testxml.do",{testvalue:$('#test').val()},function(data){
  41. varitems=data.getElementsByTagName("itemslist");
  42. //循环输出username和password
  43. for(vari=0;i<items.length;i++){
  44. varchilds=items[i].childNodes;
  45. for(varj=0;j<childs.length;j++){
  46. alert(childs[j].firstChild.nodeValue);
  47. }
  48. }
  49. })
  50. })
  51. */
  52. </script>
  53. </head>
  54. <body>&nbsp;
  55. <formaction="/testxml.do">
  56. <inputtype="button"value="JQuery"id="jquerytest"><br>
  57. <inputtype="text"value="JQuerytest"name="test"id="test">
  58. <fontid="userlogin">登陆</font><spanid="loading"></span>
  59. <pid="result"></p>
  60. </form>
  61. </body>
  62. </html>

2.Struts+JQuery+JSON

TestAction如下:

  1. /*
  2. *GeneratedbyMyEclipseStruts
  3. *Templatepath:templates/java/JavaClass.vtl
  4. */
  5. packageaction;
  6. importjava.io.IOException;
  7. importjava.io.PrintWriter;
  8. importjava.io.UnsupportedEncodingException;
  9. importjava.util.ArrayList;
  10. importjava.util.List;
  11. importjavax.servlet.http.HttpServletRequest;
  12. importjavax.servlet.http.HttpServletResponse;
  13. importnet.sf.json.JSONArray;
  14. importorg.apache.struts.action.Action;
  15. importorg.apache.struts.action.ActionForm;
  16. importorg.apache.struts.action.ActionForward;
  17. importorg.apache.struts.action.ActionMapping;
  18. importform.TestForm;
  19. /**
  20. *MyEclipseStruts
  21. *Creationdate:03-05-2010
  22. *
  23. *XDocletdefinition:
  24. *@struts.actionpath="/test"name="testForm"input="index.jsp"scope="request"
  25. */
  26. publicclassTestActionextendsAction{
  27. /*
  28. *GeneratedMethods
  29. */
  30. /**
  31. *Methodexecute
  32. *@parammapping
  33. *@paramform
  34. *@paramrequest
  35. *@paramresponse
  36. *@returnActionForward
  37. *@throwsUnsupportedEncodingException
  38. */
  39. publicActionForwardexecute(ActionMappingmapping,ActionFormform,
  40. HttpServletRequestrequest,HttpServletResponseresponse)throwsUnsupportedEncodingException{
  41. TestFormtestForm=(TestForm)form;//TODOAuto-generatedmethodstub
  42. response.setContentType("text/json;charset=utf-8");//注意设置为json,如果为xml,则设为xml
  43. /*response.setContentType("text/xml;charset=utf-8");传输xml时要用xml
  44. *response.setCharacterEncoding("utf-8");
  45. **/
  46. System.out.println(testForm.getTestvalue());
  47. //1.struts1.2+JQuery+Json传递list参数,此时list的类型为String
  48. /*List<String>list=newArrayList<String>();
  49. list.add("string1");
  50. list.add("string2");
  51. list.add("string3");
  52. JSONArrayjson=JSONArray.fromObject(list);
  53. try{
  54. PrintWriterout=response.getWriter();
  55. System.out.println(json);
  56. out.print(json);
  57. out.flush();
  58. }catch(IOExceptione){
  59. //TODOAuto-generatedcatchblock
  60. e.printStackTrace();
  61. }*/
  62. //2.struts1.2+JQuery+Json传递Map参数
  63. /*Map<String,String>map=newHashMap<String,String>();
  64. map.put("name1","string1");
  65. map.put("name2","string2");
  66. map.put("name3","string3");
  67. JSONArrayjson=JSONArray.fromObject(map);
  68. try{
  69. PrintWriterout=response.getWriter();
  70. System.out.println(json);
  71. out.print(json);
  72. out.flush();
  73. }catch(IOExceptione){
  74. //TODOAuto-generatedcatchblock
  75. e.printStackTrace();
  76. }*/
  77. //3.传递单个String值
  78. /*Stringsinglepara="{/"name/":'中国'}";//要注意格式
  79. JSONObjectjson=JSONObject.fromObject(test);
  80. try{
  81. PrintWriterout=response.getWriter();
  82. System.out.println(json);
  83. out.print(json);
  84. out.flush();
  85. }catch(IOExceptione){
  86. //TODOAuto-generatedcatchblock
  87. e.printStackTrace();
  88. }*/
  89. //4.struts1.2+JQuery+Json传递User参数
  90. /*Useruser1=newUser();
  91. user1.setPassword(1);
  92. Stringusername="你好";
  93. user1.setUsername(username);
  94. //user1.setUsername(newString(username.getBytes("utf-8"),"iso8859-1"));
  95. JSONObjectjson=JSONObject.fromObject(user1);
  96. try{
  97. PrintWriterout=response.getWriter();
  98. System.out.println(json);
  99. out.print(json);
  100. out.flush();
  101. }catch(IOExceptione){
  102. //TODOAuto-generatedcatchblock
  103. e.printStackTrace();
  104. }*/
  105. //5.struts1.2+JQuery+Json传递list参数,此时list的类型为String
  106. List<User>list=newArrayList<User>();
  107. Useruser1=newUser();
  108. user1.setPassword(1);
  109. user1.setUsername("u1");
  110. Useruser2=newUser();
  111. user2.setPassword(2);
  112. user2.setUsername("u2");
  113. Useruser3=newUser();
  114. user3.setPassword(3);
  115. user3.setUsername("u3");
  116. list.add(user1);
  117. list.add(user2);
  118. list.add(user3);
  119. JSONArrayjson=JSONArray.fromObject(list);
  120. try{
  121. PrintWriterout=response.getWriter();
  122. System.out.println(json);
  123. out.print(json);
  124. out.flush();
  125. }catch(IOExceptione){
  126. //TODOAuto-generatedcatchblock
  127. e.printStackTrace();
  128. }
  129. returnnull;
  130. }
  131. }

struts-config.xml如下:

[c-sharp] view plaincopy
  1. <action
  2. attribute="testForm"
  3. input="/index.jsp"
  4. name="testForm"
  5. path="/test"
  6. scope="request"
  7. type="action.TestAction"
  8. validate="false"/>

index.jsp如下:

  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
  2. <%
  3. Stringpath=request.getContextPath();
  4. StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  7. <html>
  8. <head>
  9. <basehref="<%=basePath%>">
  10. <title>struts+jquery+json</title>
  11. <metahttp-equiv="pragma"content="no-cache">
  12. <metahttp-equiv="cache-control"content="no-cache">
  13. <metahttp-equiv="expires"content="0">
  14. <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
  15. <metahttp-equiv="description"content="Thisismypage">
  16. <!--
  17. <linkrel="stylesheet"type="text/css"href="styles.css">
  18. -->
  19. <scripttype="text/javascript"src="/MyStrutsJQueryJson/js/jquery-1.4.2.js"></script>
  20. <scripttype="text/javascript">
  21. /*1.struts1.2+JQuery+Json传递list参数,此时list的类型为String
  22. $(function(){
  23. $("#submitbutton").click(function(){
  24. varparams={testvalue:$('#test').val()};
  25. $.ajax({
  26. url:"test.do",
  27. data:params,
  28. type:'post',
  29. dataType:'json',
  30. success:function(data){
  31. //data值:["string1","string2","string3"]
  32. alert("成功");
  33. alert(data.length);
  34. for(varj=0;j<data.length;j++)
  35. {
  36. alert(data[j]);
  37. }
  38. },
  39. error:function(){
  40. alert("失败");
  41. }
  42. })
  43. })
  44. })*/
  45. //2.struts1.2+JQuery+Json传递Map参数
  46. /*$(function(){
  47. $("#submitbutton").click(function(){
  48. alert("start");
  49. varparams={testvalue:$('#test').val()};
  50. $.ajax({
  51. url:"test.do",
  52. data:params,
  53. type:'post',
  54. dataType:'json',
  55. success:function(data){
  56. //alert(data.name1);//缺点是须知道属性名,在JSONArray下
  57. //迭代循环输出
  58. //data值为:[{"name3":"string3","name1":"string1","name2":"string2"}]
  59. $.each(data[0],function(key,value){
  60. alert(key+""+value);
  61. })
  62. },
  63. error:function(){
  64. alert("失败");
  65. }
  66. })
  67. })
  68. })*/
  69. //3.struts1.2+JQuery+Json传递String参数
  70. /*
  71. $(function(){
  72. $("#submitbutton").click(function(){
  73. varparams={testvalue:$('#test').val()};
  74. alert("start");
  75. $.ajax({
  76. url:"test.do",
  77. data:params,
  78. type:'post',
  79. dataType:'json',
  80. success:function(data){
  81. alert("成功");
  82. alert(data.name);
  83. },
  84. error:function(){
  85. alert("失败");
  86. }
  87. })
  88. })
  89. })*/
  90. //4.struts1.2+JQuery+Json传递User参数
  91. /*$(function(){
  92. $("#submitbutton").click(function(){
  93. varparams={testvalue:$('#test').val()};
  94. $.ajax({
  95. url:"test.do",
  96. data:params,
  97. type:'post',
  98. dataType:'json',
  99. success:function(data){
  100. //data值为:{"password":1,"username":"你好"}
  101. alert("成功");
  102. alert(data.username);
  103. alert(data.password);
  104. },
  105. error:function(){
  106. alert("失败");
  107. }
  108. })
  109. })
  110. })*/
  111. //5.struts1.2+JQuery+Json传递list参数,此时list的类型为User
  112. $(function(){
  113. $("#submitbutton").click(function(){
  114. varparams={testvalue:$('#test').val()};
  115. $.ajax({
  116. url:"test.do",
  117. data:params,
  118. type:'post',
  119. dataType:'json',
  120. success:function(data){
  121. alert("成功");
  122. //data值:[{"password":1,"username":"u1"},{"password":2,"username":"u2"},{"password":3,"username":"u3"}]
  123. /*for(varj=0;j<data.length;j++)
  124. {
  125. alert(data[j].username);
  126. alert(data[j].password);
  127. }*/
  128. $.each(data,function(i){
  129. $.each(data[i],function(key,value){
  130. alert(key+""+value);
  131. })
  132. })
  133. },
  134. error:function(){
  135. alert("失败");
  136. }
  137. })
  138. })
  139. })
  140. </script>
  141. </head>
  142. <body>
  143. 测试输入框:<inputtype="text"id="test"name="hello"><br>
  144. <inputtype="button"name="submitbutton"id="submitbutton"value="提交">
  145. </body>
  146. </html>

Struts1+JQuery+JSON/XML的例子

1.Struts+JQuery+XML

struts-config.xml如下:

  1. <action
  2. attribute="testForm"
  3. input="/indexxml.jsp"
  4. name="testForm"
  5. path="/testxml"
  6. scope="request"
  7. type="action.TestXmlAction"
  8. validate="false"/>

TestxmlAction.java如下:

  1. /*
  2. *GeneratedbyMyEclipseStruts
  3. *Templatepath:templates/java/JavaClass.vtl
  4. */
  5. packageaction;
  6. importjava.io.IOException;
  7. importjava.io.PrintWriter;
  8. importjava.util.ArrayList;
  9. importjava.util.List;
  10. importjavax.servlet.http.HttpServletRequest;
  11. importjavax.servlet.http.HttpServletResponse;
  12. importorg.apache.struts.action.Action;
  13. importorg.apache.struts.action.ActionForm;
  14. importorg.apache.struts.action.ActionForward;
  15. importorg.apache.struts.action.ActionMapping;
  16. importform.TestForm;
  17. /**
  18. *MyEclipseStruts
  19. *Creationdate:03-05-2010
  20. *
  21. *XDocletdefinition:
  22. *@struts.actionpath="/test"name="testForm"input="index.jsp"scope="request"
  23. */
  24. publicclassTestXmlActionextendsAction{
  25. /*
  26. *GeneratedMethods
  27. */
  28. /**
  29. *Methodexecute
  30. *@parammapping
  31. *@paramform
  32. *@paramrequest
  33. *@paramresponse
  34. *@returnActionForward
  35. *@throwsIOException
  36. */
  37. publicActionForwardexecute(ActionMappingmapping,ActionFormform,
  38. HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{
  39. TestFormtestForm=(TestForm)form;//TODOAuto-generatedmethodstub
  40. response.setContentType("text/xml;charset=utf-8");//传输xml时要用html
  41. response.setCharacterEncoding("utf-8");
  42. System.out.println(testForm.getTestvalue());
  43. PrintWriterpw=response.getWriter();
  44. //1.传递单个参数,注意应将text/xml改为text/html
  45. /*inti=9;
  46. pw.print(i);
  47. pw.flush();*/
  48. //2.生成xml文件返回给html页面,此时list里面为单个String
  49. /*StringBuilderxml=newStringBuilder();
  50. List<String>list=newArrayList<String>();
  51. list.add("aaa");
  52. list.add("bbb");
  53. list.add("ccc");
  54. xml.append("<items>");
  55. for(Objecto:list){
  56. xml.append("<item>").append(o).append("</item>");
  57. }
  58. xml.append("</items>");
  59. System.out.println(xml);
  60. pw.print(xml.toString());
  61. pw.flush();*/
  62. //3.生成xml文件返回给html页面,此时list里面为对象类型
  63. /*response.setContentType("text/xml;charset=utf-8");
  64. StringBuilderxml=newStringBuilder();
  65. List<User>list=newArrayList<User>();
  66. Useruser1=newUser();
  67. Useruser2=newUser();
  68. Useruser3=newUser();
  69. user1.setUsername("username1");
  70. user1.setPassword(1);
  71. user2.setUsername("username2");
  72. user2.setPassword(2);
  73. user3.setUsername("username3");
  74. user3.setPassword(3);
  75. list.add(user1);
  76. list.add(user2);
  77. list.add(user3);
  78. xml.append("<items>");
  79. for(inti=0;i<list.size();i++){
  80. xml.append("<itemslist>");
  81. xml.append("<username>").append(list.get(i).getUsername()).append("</username>");
  82. xml.append("<password>").append(list.get(i).getPassword()).append("</password>");
  83. xml.append("</itemslist>");
  84. }
  85. xml.append("</items>");
  86. System.out.println(xml);
  87. pw.print(xml.toString());*/
  88. returnnull;
  89. }
  90. }

辅助类User:

  1. packageaction;
  2. publicclassUser{
  3. privateStringusername;
  4. privateintpassword;
  5. publicStringgetUsername(){
  6. returnusername;
  7. }
  8. publicvoidsetUsername(Stringusername){
  9. this.username=username;
  10. }
  11. publicintgetPassword(){
  12. returnpassword;
  13. }
  14. publicvoidsetPassword(intpassword){
  15. this.password=password;
  16. }
  17. }

indexxml.jsp如下:

  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
  2. <%
  3. Stringpath=request.getContextPath();
  4. StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  7. <html>
  8. <head>
  9. <basehref="<%=basePath%>">
  10. <title>MyStrutsJQueryJson</title>
  11. <metahttp-equiv="pragma"content="no-cache">
  12. <metahttp-equiv="cache-control"content="no-cache">
  13. <metahttp-equiv="expires"content="0">
  14. <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
  15. <metahttp-equiv="description"content="Thisismypage">
  16. <!--
  17. <linkrel="stylesheet"type="text/css"href="styles.css">
  18. -->
  19. <scripttype="text/javascript"src="/S1.2SHJQuery/js/jquery-1.4.2.js"></script>
  20. <scripttype="text/javascript">
  21. //1.jquery单独传递单个参数
  22. /*$(function(){
  23. alert("start");
  24. $.post("testxml.do",{testvalue:$('#test').val()},function(data){
  25. alert(data);
  26. })
  27. })*/
  28. //2.jquery单独传递含单个参数的list,采用的是xml形式
  29. $(function(){
  30. $.post("testxml.do",{testvalue:$('#test').val()},function(data){
  31. varitems=data.getElementsByTagName("item");
  32. alert(items.length);
  33. for(vari=0;i<items.length;i++){
  34. alert(items[i].childNodes[0].nodeValue);
  35. }
  36. })
  37. })
  38. //3.jquery单独传递含对象类型的list,,采用的是xml形式
  39. /*$(function(){
  40. $.post("testxml.do",{testvalue:$('#test').val()},function(data){
  41. varitems=data.getElementsByTagName("itemslist");
  42. //循环输出username和password
  43. for(vari=0;i<items.length;i++){
  44. varchilds=items[i].childNodes;
  45. for(varj=0;j<childs.length;j++){
  46. alert(childs[j].firstChild.nodeValue);
  47. }
  48. }
  49. })
  50. })
  51. */
  52. </script>
  53. </head>
  54. <body>&nbsp;
  55. <formaction="/testxml.do">
  56. <inputtype="button"value="JQuery"id="jquerytest"><br>
  57. <inputtype="text"value="JQuerytest"name="test"id="test">
  58. <fontid="userlogin">登陆</font><spanid="loading"></span>
  59. <pid="result"></p>
  60. </form>
  61. </body>
  62. </html>

2.Struts+JQuery+JSON

TestAction如下:

  1. /*
  2. *GeneratedbyMyEclipseStruts
  3. *Templatepath:templates/java/JavaClass.vtl
  4. */
  5. packageaction;
  6. importjava.io.IOException;
  7. importjava.io.PrintWriter;
  8. importjava.io.UnsupportedEncodingException;
  9. importjava.util.ArrayList;
  10. importjava.util.List;
  11. importjavax.servlet.http.HttpServletRequest;
  12. importjavax.servlet.http.HttpServletResponse;
  13. importnet.sf.json.JSONArray;
  14. importorg.apache.struts.action.Action;
  15. importorg.apache.struts.action.ActionForm;
  16. importorg.apache.struts.action.ActionForward;
  17. importorg.apache.struts.action.ActionMapping;
  18. importform.TestForm;
  19. /**
  20. *MyEclipseStruts
  21. *Creationdate:03-05-2010
  22. *
  23. *XDocletdefinition:
  24. *@struts.actionpath="/test"name="testForm"input="index.jsp"scope="request"
  25. */
  26. publicclassTestActionextendsAction{
  27. /*
  28. *GeneratedMethods
  29. */
  30. /**
  31. *Methodexecute
  32. *@parammapping
  33. *@paramform
  34. *@paramrequest
  35. *@paramresponse
  36. *@returnActionForward
  37. *@throwsUnsupportedEncodingException
  38. */
  39. publicActionForwardexecute(ActionMappingmapping,ActionFormform,
  40. HttpServletRequestrequest,HttpServletResponseresponse)throwsUnsupportedEncodingException{
  41. TestFormtestForm=(TestForm)form;//TODOAuto-generatedmethodstub
  42. response.setContentType("text/json;charset=utf-8");//注意设置为json,如果为xml,则设为xml
  43. /*response.setContentType("text/xml;charset=utf-8");传输xml时要用xml
  44. *response.setCharacterEncoding("utf-8");
  45. **/
  46. System.out.println(testForm.getTestvalue());
  47. //1.struts1.2+JQuery+Json传递list参数,此时list的类型为String
  48. /*List<String>list=newArrayList<String>();
  49. list.add("string1");
  50. list.add("string2");
  51. list.add("string3");
  52. JSONArrayjson=JSONArray.fromObject(list);
  53. try{
  54. PrintWriterout=response.getWriter();
  55. System.out.println(json);
  56. out.print(json);
  57. out.flush();
  58. }catch(IOExceptione){
  59. //TODOAuto-generatedcatchblock
  60. e.printStackTrace();
  61. }*/
  62. //2.struts1.2+JQuery+Json传递Map参数
  63. /*Map<String,String>map=newHashMap<String,String>();
  64. map.put("name1","string1");
  65. map.put("name2","string2");
  66. map.put("name3","string3");
  67. JSONArrayjson=JSONArray.fromObject(map);
  68. try{
  69. PrintWriterout=response.getWriter();
  70. System.out.println(json);
  71. out.print(json);
  72. out.flush();
  73. }catch(IOExceptione){
  74. //TODOAuto-generatedcatchblock
  75. e.printStackTrace();
  76. }*/
  77. //3.传递单个String值
  78. /*Stringsinglepara="{/"name/":'中国'}";//要注意格式
  79. JSONObjectjson=JSONObject.fromObject(test);
  80. try{
  81. PrintWriterout=response.getWriter();
  82. System.out.println(json);
  83. out.print(json);
  84. out.flush();
  85. }catch(IOExceptione){
  86. //TODOAuto-generatedcatchblock
  87. e.printStackTrace();
  88. }*/
  89. //4.struts1.2+JQuery+Json传递User参数
  90. /*Useruser1=newUser();
  91. user1.setPassword(1);
  92. Stringusername="你好";
  93. user1.setUsername(username);
  94. //user1.setUsername(newString(username.getBytes("utf-8"),"iso8859-1"));
  95. JSONObjectjson=JSONObject.fromObject(user1);
  96. try{
  97. PrintWriterout=response.getWriter();
  98. System.out.println(json);
  99. out.print(json);
  100. out.flush();
  101. }catch(IOExceptione){
  102. //TODOAuto-generatedcatchblock
  103. e.printStackTrace();
  104. }*/
  105. //5.struts1.2+JQuery+Json传递list参数,此时list的类型为String
  106. List<User>list=newArrayList<User>();
  107. Useruser1=newUser();
  108. user1.setPassword(1);
  109. user1.setUsername("u1");
  110. Useruser2=newUser();
  111. user2.setPassword(2);
  112. user2.setUsername("u2");
  113. Useruser3=newUser();
  114. user3.setPassword(3);
  115. user3.setUsername("u3");
  116. list.add(user1);
  117. list.add(user2);
  118. list.add(user3);
  119. JSONArrayjson=JSONArray.fromObject(list);
  120. try{
  121. PrintWriterout=response.getWriter();
  122. System.out.println(json);
  123. out.print(json);
  124. out.flush();
  125. }catch(IOExceptione){
  126. //TODOAuto-generatedcatchblock
  127. e.printStackTrace();
  128. }
  129. returnnull;
  130. }
  131. }

struts-config.xml如下:

[c-sharp] view plaincopy
  1. <action
  2. attribute="testForm"
  3. input="/index.jsp"
  4. name="testForm"
  5. path="/test"
  6. scope="request"
  7. type="action.TestAction"
  8. validate="false"/>

index.jsp如下:

  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
  2. <%
  3. Stringpath=request.getContextPath();
  4. StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  7. <html>
  8. <head>
  9. <basehref="<%=basePath%>">
  10. <title>struts+jquery+json</title>
  11. <metahttp-equiv="pragma"content="no-cache">
  12. <metahttp-equiv="cache-control"content="no-cache">
  13. <metahttp-equiv="expires"content="0">
  14. <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
  15. <metahttp-equiv="description"content="Thisismypage">
  16. <!--
  17. <linkrel="stylesheet"type="text/css"href="styles.css">
  18. -->
  19. <scripttype="text/javascript"src="/MyStrutsJQueryJson/js/jquery-1.4.2.js"></script>
  20. <scripttype="text/javascript">
  21. /*1.struts1.2+JQuery+Json传递list参数,此时list的类型为String
  22. $(function(){
  23. $("#submitbutton").click(function(){
  24. varparams={testvalue:$('#test').val()};
  25. $.ajax({
  26. url:"test.do",
  27. data:params,
  28. type:'post',
  29. dataType:'json',
  30. success:function(data){
  31. //data值:["string1","string2","string3"]
  32. alert("成功");
  33. alert(data.length);
  34. for(varj=0;j<data.length;j++)
  35. {
  36. alert(data[j]);
  37. }
  38. },
  39. error:function(){
  40. alert("失败");
  41. }
  42. })
  43. })
  44. })*/
  45. //2.struts1.2+JQuery+Json传递Map参数
  46. /*$(function(){
  47. $("#submitbutton").click(function(){
  48. alert("start");
  49. varparams={testvalue:$('#test').val()};
  50. $.ajax({
  51. url:"test.do",
  52. data:params,
  53. type:'post',
  54. dataType:'json',
  55. success:function(data){
  56. //alert(data.name1);//缺点是须知道属性名,在JSONArray下
  57. //迭代循环输出
  58. //data值为:[{"name3":"string3","name1":"string1","name2":"string2"}]
  59. $.each(data[0],function(key,value){
  60. alert(key+""+value);
  61. })
  62. },
  63. error:function(){
  64. alert("失败");
  65. }
  66. })
  67. })
  68. })*/
  69. //3.struts1.2+JQuery+Json传递String参数
  70. /*
  71. $(function(){
  72. $("#submitbutton").click(function(){
  73. varparams={testvalue:$('#test').val()};
  74. alert("start");
  75. $.ajax({
  76. url:"test.do",
  77. data:params,
  78. type:'post',
  79. dataType:'json',
  80. success:function(data){
  81. alert("成功");
  82. alert(data.name);
  83. },
  84. error:function(){
  85. alert("失败");
  86. }
  87. })
  88. })
  89. })*/
  90. //4.struts1.2+JQuery+Json传递User参数
  91. /*$(function(){
  92. $("#submitbutton").click(function(){
  93. varparams={testvalue:$('#test').val()};
  94. $.ajax({
  95. url:"test.do",
  96. data:params,
  97. type:'post',
  98. dataType:'json',
  99. success:function(data){
  100. //data值为:{"password":1,"username":"你好"}
  101. alert("成功");
  102. alert(data.username);
  103. alert(data.password);
  104. },
  105. error:function(){
  106. alert("失败");
  107. }
  108. })
  109. })
  110. })*/
  111. //5.struts1.2+JQuery+Json传递list参数,此时list的类型为User
  112. $(function(){
  113. $("#submitbutton").click(function(){
  114. varparams={testvalue:$('#test').val()};
  115. $.ajax({
  116. url:"test.do",
  117. data:params,
  118. type:'post',
  119. dataType:'json',
  120. success:function(data){
  121. alert("成功");
  122. //data值:[{"password":1,"username":"u1"},{"password":2,"username":"u2"},{"password":3,"username":"u3"}]
  123. /*for(varj=0;j<data.length;j++)
  124. {
  125. alert(data[j].username);
  126. alert(data[j].password);
  127. }*/
  128. $.each(data,function(i){
  129. $.each(data[i],function(key,value){
  130. alert(key+""+value);
  131. })
  132. })
  133. },
  134. error:function(){
  135. alert("失败");
  136. }
  137. })
  138. })
  139. })
  140. </script>
  141. </head>
  142. <body>
  143. 测试输入框:<inputtype="text"id="test"name="hello"><br>
  144. <inputtype="button"name="submitbutton"id="submitbutton"value="提交">
  145. </body>
  146. </html>

分享到:
评论

相关推荐

    最新Struts2+jq+ajax+json 学会总要4步‵‵超级简单,里面包含实例

    最新Struts2.3.8 + jquery + ajax + json 学会struts+jq+ajax+json只要4步‵‵经过作者的总结超级简单 1. 导入struts2 及json包 asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar commons-fileupload-1.2.2.jar...

    Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程

    3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate...

    Struts2+Jquery实现ajax并返回json类型数据

    主要实现步骤如下: 1、JSP页面使用脚本代码执行ajax请求 2、Action中查询出需要返回的数据,并转换为json类型模式数据 3、配置struts.xml文件 4、页面脚本接受并处理数据!

    struts2+spring+hibernate整合示例

    a 加入支持 : 添加struts2.3.15 必需包 以及 struts json包(ajax要用到),spring整合struts2包,spring web 包,在src目录下建立struts.xml,复制头文件进去。将applicationContext.xml移到WEB-INF目录下。web容器...

    struts2 spring2 hibernate3 ajax实现的一个注册登录实例

    演示功能包括: ...使用Struts2的JSON插件完成与Ajax的交互 实现校验用户名功能 压缩包中包括sql文件 修改reg_login\WEB-INF路径下的applicationContext.xml文件,将其中的数据库密码修改为你的数据库密码

    Ext+struts2+spring+hibernate做的一个CRUD实例

    用EXT+struts2+spring+hibernate做的一个增删改查实例,主要用到了EXTjs里面的部分组件,用JSON与服务端交互,实现一个增删改查的功能!本地MYsql数据库,sql文件在根目录下面,建好库既可以运行!当然,还是需要在...

    Struts2.1.8 AJAX 读取XML,GSON,jQuery JSON

    Struts2.1.8 AJAX 读取XML,GSON,jQuery JSON的案例.

    Struts2返回JSON对象

    将jsonplugin-0.30.jar放到工程的lib下面,然后struts2在struts.xml的配置文件中可以指定返回的结果集的类型为:json,把返回的结果封装为json字符串JSON插件是Struts2的Ajax插件,通过利用JSON插件,允许开发者以...

    兼容ie8,9,10能够正确返回json结果的ajaxfileupload.js

    struts2+jquery+ajaxfileupload 需要正确配置struts2文件struts-xml文件中需要配置extends="json-default"。如果返回json结果需要在前台js中解析json数据,要用jquery的jQuery.parseJSON(json)。

    ajax调用action返回xml或list

    在WEB开发中,一般,仅仅使用JSP+ajax+SEVLET或者jsp+struts2的其中某种方式进行,各自的缺点也非常明显。这里,给出了ajax直接调用ACTION并给前台进行list或者JSON的数据回传。很不错的哦!

    在Struts2使用Json.doc

    在Struts2使用Json 在Web services中,XML是用于表示客户端与服务器端数据交换有效负载的格式。但是由于Ajax和REST技术的出现,人们开始寻找XML的替代品。

    struts自我学习过程程序以及说明

    struts.xml HelloWorld.jsp LangSelector.js 转换器: ConvertHWorld.java LocaleConverter.java xwork-conversion.properties struts.xml ConverHWorld.jsp Product.java ProductConfirm.java AddProducts.jsp ...

    Struts2 in action中文版

    第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架...

    Java版水果管理系统源码-Coder-to-CodeLife:论小白如何成为老司机成长之路,让我们一起Oriented-Life-Code!

    Java版水果管理系统源码 ...7、传统项目三层框架Struts1/2.x+Spring+Hibernate spring官网: 8、安全框架SpringSecurity/Shiro 跟我学shiro w3cschool: 9、新项目三层框架SpringMVC+Spring+MyBatis #####

    Ajax验证用户的唯一性

    针对初学者,学习Ajax验证用户的唯一性实战是为了巩固Ajax,Jquery,Json与Struts2基础知识,具体内容如下 浏览效果图: 那我们就开始了,操作步骤如下 1.首先我们先导入所需要的包及文件 Json 包: struts2 包:...

    jQuery ajax请求struts action实现异步刷新

    这个样例是用JQuery ajax和struts来做的一个小样例,在这个样例中采用两种方式将java Util中的list转换成支json的格式,第一种是用json-lib.jar这个jar包来转换,第二种是采用goole的gson-2.1.jar来转换,大家可以...

    基于Ajax的新MVC框架的研究与实现

    与使用传统的XML格式或者JSON格式相比,新的树结构信息表示法将占用更少的存储空间,获得更高的解析效率。新框架的请求处理流程借鉴了JSF的请求生命周期,但对它进行了改造,从而简化了流程。本文还将Java反射机制与...

    AJAX on JAVA

    XML and JSON for Ajax Chapter 5. Getting Useful Data Chapter 6. Ajax Libraries and Toolkits Chapter 7. Ajax Tags Chapter 8. Ajax on Struts Chapter 9. JavaServer Faces and Ajax Chapter 10. Google ...

    firefox下jquery ajax返回object XMLDocument处理方法

    使用jquery ajax处理struts2 返回json类型的时候,ajax执行成功返回结果为object XMLDocument,解决方法如下

    网上商城需求报告

    Struts2、JDBC+连接池(dbcp)、jQuery+Ajax、javamail、log4j、junit、MySQL 系统架构: 表现层:jQuery+Ajax、Struts2标签+OGNL 控制层:Struts2控制器,Action组件 业务层:JavaBean组件、javamail 数据访问层...

Global site tag (gtag.js) - Google Analytics