jimphei學(xué)習(xí)工作室

          jimphei學(xué)習(xí)工作室

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            23 隨筆 :: 0 文章 :: 1 評論 :: 0 Trackbacks

          Struts2+JQuery+JSON集成


          細(xì)節(jié)部分我就不多講了,因?yàn)槲乙膊粫椭v講我是如何調(diào)試出來我的第一個JSON使用的吧

          采用的框架有:Struts2 、 JQuery 、 JSON


          按著步驟來吧:


           1.新建一個Web工程


          導(dǎo)入包列表:

           


           目錄結(jié)構(gòu)如圖:

           


           2.建立實(shí)體類User

          package model;


          public class User


          private String name;

          private int age;

           //省略相應(yīng)的get和set方法
           


           3.建立Action JsonAction

          public class JsonAction extends ActionSupport{

          private static final long serialVersionUID =

           7044325217725864312L;


          private User user;

          //用于記錄返回結(jié)果

          private String result;


          //省略相應(yīng)的get和set方法


          @SuppressWarnings("static-access")


          public String execute() throws Exception {


          //將要返回的user實(shí)體對象進(jìn)行json處理

          JSONObject jo = JSONObject.fromObject(this.user);

          //打印一下,格式如下

          //{"name":"風(fēng)達(dá)","age":23}

          System.out.println(jo);


          //調(diào)用json對象的toString方法轉(zhuǎn)換為字符串然后賦值給result

          this.result = jo.toString();


          return this.SUCCESS;

          }


          }
           


           4.建立struts.xml文件

          <?xml version="1.0" encoding="UTF-8"?>

          <!DOCTYPE struts PUBLIC

              "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

              "http://struts.apache.org/dtds/struts-2.0.dtd">


          <struts>

          <constant name="struts.i18n.encoding" value="UTF-8"></constant>

          <package name="ttttt" extends="json-default">

          <action name="jsonAction" class="action.JsonAction">

          <result type="json" >

          <!-- 因?yàn)橐獙eslut的值返回給客戶端,所以這樣設(shè)置 -->

          <!-- root的值對應(yīng)要返回的值的屬性 -->

          <param name="root">

          result

          </param>

          </result>

          </action>

          </package>

          </struts>

           


           5.編寫index.jsp文件

          <%@ page language="java" pageEncoding="UTF-8"%>

          <%@ taglib prefix="s" uri="/struts-tags"%>

          <%

          String path = request.getContextPath();

          String basePath = request.getScheme() + "://"

          + request.getServerName() + ":" + request.getServerPort()

          + path + "/";

          %>


          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

          <html>

          <head>

          <base href="<%=basePath%>">


          <title>My JSP 'index.jsp' starting page</title>

          <meta http-equiv="pragma" content="no-cache">

          <meta http-equiv="cache-control" content="no-cache">

          <meta http-equiv="expires" content="0">

          <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

          <meta http-equiv="description" content="This is my page">


          <!-- basePath用來獲取js文件的絕對路徑 -->

          <script type="text/javascript" src="<%=basePath%>js/jquery.js"></script>

          <script type="text/javascript" src="<%=basePath%>js/index.js"></script>

          <s:head theme="ajax" />

          </head>


          <body>

          <div id="result">

          </div>

          <s:form name="userForm" action="" method="post">

          <s:textfield label="用戶名" name="user.name" />

          <s:textfield label="年齡" name="user.age" />

          <button>

          提交

          </button>

          </s:form>


          </body>

          </html>

           


           6.在WebRoot目錄下建立js文件件,將jquery.js文件放到文件夾下,然后再建立文件index.js


          $(document).ready(function() {


          // 直接把onclick事件寫在了JS中

          $("button").click(function() {

          // 序列化表單的值

          var params = $("input").serialize();


          $.ajax({


          // 后臺處理程序

          url : "jsonAction.action",


          // 數(shù)據(jù)發(fā)送方式

          type : "post",


          // 接受數(shù)據(jù)格式

          dataType : "json",


          // 要傳遞的數(shù)據(jù)

          data : params,


          // 回傳函數(shù)

          success : update_page


          });

          });


          });

          function update_page(result) {

          var json = eval( "("+result+")" );

          var str = "姓名:" + json.name + "<br />"; str += "年齡:"

          + json.age + "<br />";

          $("#result").html(str);


          }
           


           7.運(yùn)行前效果:

           

          要的是效果,布局就不整了

           


          運(yùn)行后效果:

           

           


          網(wǎng)上相關(guān)的信息太少了,很多Struts2+JQuery+JSON的教程,點(diǎn)開鏈接之后都是那幾篇文章轉(zhuǎn)了又轉(zhuǎn),遇到問題真的很想找到有用的信息,或許是我太笨了,找不到,或許就是網(wǎng)上相關(guān)的信息就很少。這個實(shí)例很簡單是不是,但是為了調(diào)試出這個程序,我費(fèi)了一天的時間。


          上面的實(shí)例成功了,但是問題又出來了

          視圖類型僅僅設(shè)置了json

          那么輸入校驗(yàn)出錯的時候怎么顯示?


          本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/fengda2870/archive/2009/04/06/4052527.aspx

          posted on 2009-09-30 12:52 jimphei 閱讀(833) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 德令哈市| 德州市| 榆社县| 麻江县| 哈巴河县| 万全县| 广宁县| 女性| 喀喇沁旗| 上蔡县| 通城县| 呈贡县| 西乡县| 清镇市| 玉田县| 吐鲁番市| 垣曲县| 盐池县| 屏山县| 文昌市| 恩平市| 罗源县| 长子县| 夏河县| 怀化市| 涟水县| 忻城县| 盘山县| 德江县| 闽清县| 元阳县| 五常市| 威远县| 朔州市| 全南县| 红安县| 榆林市| 吉木萨尔县| 江安县| 重庆市| 托克逊县|