brucewei777 发表于 2013-1-23 02:08:09

DOJO结合JSON的一段代码

DOJO本身就自带了一些AJAX方面的标签,但是还是想自己结合JSON来实现一些功能,下面是我在学习过程中调试通过了的一些代码。为了记忆,也为了共享。
<%@ taglib prefix="s" uri="/struts-tags"%><%@ taglib uri="/struts-dojo-tags" prefix="sx" %><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><sx:head parseContent="true"/><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript">var djConfig = {isDebug: true,debugAtAllCosts: true};</script> <script language="Javascript" type="text/javascript">function onLoad() {   var buttonObj = document.getElementById("myButton");   dojo.event.connect(buttonObj, "onclick",          this, "onclick_myButton");}function onclick_myButton() {   var bindArgs = {    url: "officeJson",    error: function(type, data, evt){   alert("An error occurred.");    },    load: function(type, data, evt)    {   alert(data.name);    },    mimetype: "text/json",    formNode: document.getElementById("myForm")   };   dojo.io.bind(bindArgs);}</script></head><body ><form id="myForm"> <input type="text" name="id"/> <input type="button" id="myButton" value="Submit" /></form></body></html>

   url: "officeJson"表示该请求指向的是一个名叫officeJson得action;
   error: 表示该过程出错后调用的处理方法;
   load: 表示请求返回结果后调用的处理方法;
   mimetype: "text/json"表示返回内容的类型;
   formNode: 提交的窗体;
   最后通过dojo.io.bind(bindArgs)把该请求发送出去。

要传递的对象需要实现下面这个接口方法。
public String toJSONString() throws JSONException{try{JSONObject jsonObject = new JSONObject();jsonObject.put("id",this.id);jsonObject.put("name", this.name);return jsonObject.toString();} catch (Exception e){e.printStackTrace();return "";}}
action中的方法如下:
public String getJSONString()    {    this.office = service.find(this.id);    inputStream = new ByteArrayInputStream(this.office.toJSONString().getBytes());    return Action.SUCCESS;    }

struts.xml中的配置如下:
<action name="officeJson" class="officeAction" method="getJSONString">      <result type="stream">            <param name="contentType">text/html</param>            <param name="inputName">inputStream</param>      </result>      </action>
页: [1]
查看完整版本: DOJO结合JSON的一段代码