`
brucewei777
  • 浏览: 84936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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 onload="onLoad();">
<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>

0
1
分享到:
评论

相关推荐

    enhancedgrid server page

    EnhancedGrid是Dojo的一个强大表格组件,它提供了一种灵活的方式来展示和操作大量数据,同时支持丰富的交互性和定制化。 1. **Dojo EnhancedGrid**: Dojo EnhancedGrid是Dojo UI库中的一个高级表格组件,它扩展了...

    struts2实现服务器端校验示例

    这段代码会在用户尝试提交表单时阻止默认行为,然后使用Dojo的`xhrPost`发送表单数据到服务器。如果服务器返回验证成功,可以继续提交或跳转;否则,显示错误信息。 在Struts2的Action类中,你需要处理这些异步请求...

    达内2012三大框架之struts2附pdf和代码(最新版pdf)

    本资料集合包含了达内教育在2012年更新至5.0系统后的最新版Struts2教学资源,包括PDF文档和实际代码,这对于学习和理解Struts2框架的运作机制大有裨益。 首先,我们来看“Struts2详细流程图.png”和“Struts2体系...

    java开源包8

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包10

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    ajax on java

    这本电子书对于希望将Java与Ajax结合的开发者来说,是一份宝贵的参考资料。通过阅读,读者可以了解到2007年时的Ajax技术趋势,虽然现在技术已经发展了很多,但基本原理和许多实践仍然具有指导意义。同时,了解历史上...

    ajax1000000sdssf

    在实际的 AJAX 开发中,开发者会使用类似 XMLHttpRequest 或 Fetch API 来发送请求,结合 JSON(而非 XML,因为现在更常见)进行数据交换,并利用 JavaScript 的 DOM 操作能力来更新页面元素。同时,了解和利用像 ...

    DTree动态jsp实现

    JSP是Java的一种服务器端脚本语言,它允许将HTML代码和Java代码结合在一起,为Web应用程序提供动态内容。 在"没有验证是否正确"的描述中,可能是指DTree的实现过程中没有进行充分的测试,或者某些功能未经验证。这...

    mern-stack-assignments-react:这些是Coding Dojo的MERN堆栈中的React分配

    在这个项目中,"mern-stack-assignments-react" 是针对 Coding Dojo 的一个课程,专门关注React部分,它是MERN堆栈的前端部分。 **React基础知识** React是Facebook开发的一个开源JavaScript库,用于构建用户界面...

    深入浅出Struts2

    Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用程序。它的设计目标是提供一个更加稳定、高效且具有可扩展...结合源代码学习,无疑会加深对Struts2的理解,提升开发效率。

    java开源包11

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包1

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包2

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包3

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包6

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包5

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包4

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包7

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包9

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

Global site tag (gtag.js) - Google Analytics