`

struts2整合json和ajax

阅读更多
1,Struts2与Ajax整合的缺点
无论采用$.post还是$.ajax都捕获不到服务器产生的错误($.ajax捕获错误在servlet能做到),是struts2内部设计的不好,不是Ajax的问题。
2,$.post()与$.ajax()大家都知道,$.post()方法与$.ajax()方法的区别:
$.post()方法:不能截获异常;
$.ajax()方法:可以截获异常;
3,需要加入jar包(struts版本下的,不同版本会报错)
json-lib-2.1-jdk15.jar
struts2-json-plugin-2.3.1.2.jar
struts2-junit-plugin-2.3.1.2.jar
----------------------------------------------------自定义结果集(struts2-ajax)---------------------------------------
1,jsp页面:
<script type="text/javascript">
	$(function(){
		coustom.inintEvent();
	});
	</script>
	<td><s:textfield name="name"></s:textfield></td>
	<td><s:label id="message"></s:label> </td>

2,js
var coustom = {
		//############################自定义结果集
		inintEvent:function(){
			$("input[name='name']").unbind("blur");
			$("input[name='name']").bind("blur", function(){
				coustom.check_coustomAction($(this).val());
			});
		},
		check_coustomAction:function(name){
			var parameter={
				'name':name
			};
			var xhl = $.post("ajaxjson_check.action", parameter, function(data){
				$("#message").text(xhl.responseText);
				if(xhl.responseText == "该用户名可以使用"){
					$("#message").css("color", "blue");
				}else{
					$("#message").css("color","red");
				}
			});
		},
		//############################struts2与json整合	
		inintEvent2:function(){
			$("input[name='name']").unbind("blur");
			$("input[name='name']").bind("blur", function(){
				coustom.check_coustomAction2($(this).val());
			});
		},
		check_coustomAction2:function(name){
			var parameter={
				'name':name
			};
			$.ajax({
				type:"POST",
				url:"ajaxjson2_check.action",
				data:parameter,
				dateType:"json",
				success:function(data){
					$("#message").text(data.message);
				},
				error:function(){
					$("#message").text("连接失败");//这里得不到提示,有错误会走模版页面
				}
			});
		}
	};

3,action
	/**
	 *ajax调用 
	 */
	public String check(){
		Long l = coustomservice.findCoustom(this.model.getName());
		if (l != 0) {
			ActionContext.getContext().getValueStack().push("该用户名已占用");
		}else{
			ActionContext.getContext().getValueStack().push("该用户名可以使用");
		}
		return SUCCESS;
	}

4,AjaxAction.java
	public class AjaxResutl implements Result{
		@Override
		public void execute(ActionInvocation arg0) throws Exception {
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setCharacterEncoding("utf-8");
			String message = ActionContext.getContext().getValueStack().peek().toString();
			response.getWriter().print(message);
		}
	}

5,struts.xml
<package name="ajax" namespace="/" extends="all">
		<result-types>
			<result-type name="ajaxResult" class="ssh.action.sturts2jsonajax.AjaxResutl"></result-type>
		</result-types>
	</package>
	<package name="Coustom" namespace="/" extends="all">
		<action name="customAction_*" class="ssh.action.sturts2jsonajax.CustomAction" method="{1}">
			<result name="toAddUI">/jsp/struts2jsonajax/coustomadd.jsp</result>
		</action>
	</package>
	<!-- result 中的type对应package中ajax的result -->
	<package name="ajaxjson" namespace="/" extends="ajax">
		<action name="ajaxjson_*" class="ssh.action.sturts2jsonajax.CustomAction" method="{1}">
			<result type="ajaxResult"></result>
		</action>
	</package>
-----------------------------------------------(struts2-ajax-json)-------------------------------------------------------
String message 加到javabean coustom中,这个字段不需和数据库字段关联,临时的ajax获取信息。
(一般通过get,set就行了,这个系统中不行,原因,未知)
1,jsp
<script type="text/javascript">
	$(function(){
		coustom.inintEvent2();
	});
	</script>
2,js
同上
3,action
/**
	 *ajax调用 
	 */
	public String check(){
		try {
//			int a = 1/0;
			Long l = coustomservice.findCoustom(model.getName());
			if (l != 0) {
				model.setMessage("该用户已被占用");
//				ActionContext.getContext().getValueStack().push(message);
			}else{
				model.setMessage("该用户可以使用");
//				ActionContext.getContext().getValueStack().push(message);
			}
		} catch (Exception e) {
//			model.setMessage("查询异常!");
			model.setMessage(e.toString());
		}
		return SUCCESS;
	}
4,struts.xml
<package name="Coustom2" namespace="/" extends="all">
		<action name="customAction2_*" class="ssh.action.sturts2jsonajax.CustomAction2" method="{1}">
			<result name="toAddUI2">/jsp/struts2jsonajax/coustomadd2.jsp</result>
		</action>
	</package>
	<package name="coustom2_json" namespace="/" extends="json-default">
		<action name="ajaxjson2_*" class="ssh.action.sturts2jsonajax.CustomAction2" method="{1}">
			<result type="json"></result>
		</action>
	</package>
分享到:
评论

相关推荐

    struts2+json+ajax整合例子(导入即可运行,附带详细教程)

    Struts2、JSON和AJAX是Web开发中的关键技术,它们的整合可以实现高效的数据交互和动态页面更新。本文将深入探讨这些技术以及如何在实际项目中整合它们。 **Struts2** 是一个基于MVC(Model-View-Controller)设计...

    json2+jsonplugin struts2整合ajax时,使用json时需要的jar包

    通过上述步骤,你就可以在Struts2项目中顺利地整合Ajax和JSON,实现前后端的高效数据交互。这个过程中,`json2.js`和`jsonplugin`起到了至关重要的作用,它们让JSON数据在不同的环境中得以顺畅地流动。记得在开发...

    struts2与json整合

    综上所述,Struts2与JSON的整合不仅提升了Web应用程序的性能和用户体验,还简化了开发者的工作,使他们能够更加专注于业务逻辑的实现,而不是纠结于数据格式的转换。通过遵循上述步骤,开发者可以有效地在Struts2...

    struts2+json/ajax

    测试文件可能包括JUnit测试用例,用于验证Struts2和JSON集成的功能是否正常工作,以及Ajax请求是否能正确地与服务器进行通信并接收预期的JSON响应。 通过这种整合,开发者可以利用Struts2的强大功能处理后端业务...

    struts2+json+ajax

    Struts2、JSON和Ajax是...通过理解Struts2、JSON和Ajax的基本原理,以及它们在实际项目中的整合方式,开发者可以构建出更加高效、交互性更强的Web应用。这个小例子就是一个很好的起点,帮助初学者理解和实践这些技术。

    struts2 json Ajax 整合所需全部jar包.zip

    为了正确整合这些技术,开发者需要了解如何配置Struts2的Action和结果类型,熟悉JSON对象的构造和解析,以及掌握基本的Ajax编程技巧。此外,良好的错误处理和调试能力也是必不可少的。当所有这些元素都正确配置和...

    struts2+json+jquery实现ajax数据的存取

    在Struts2中,我们可以使用JSON插件来方便地序列化和反序列化Java对象为JSON格式,从而实现在Ajax请求中发送和接收数据。 **3. jQuery库** jQuery是一个高效、简洁的JavaScript库,它简化了HTML文档遍历、事件处理...

    struts2jsonajax

    在"struts2jsonajax"项目中,我们看到Struts2与JSON和AJAX进行了整合。Struts2通过Action和Result来处理用户的请求,并返回响应。在这个整合中,Struts2 Action将处理业务逻辑后,会以JSON格式返回数据,而非传统的...

    struts2结合JSON的Ajax支持

    标签中的“源码”可能是指Struts2和JSON的整合涉及到的源代码编写,而“工具”可能指的是开发过程中使用的IDE、构建工具(如Maven或Gradle)和其他辅助开发的库,如jQuery或其他的Ajax库。 在实际项目中,使用...

    Struts2整合jQuery实现Ajax功能.doc

    总结来说,Struts2整合jQuery实现Ajax功能,可以让前端和后端之间进行无缝通信,提供更加动态的用户体验。通过使用jQuery简化Ajax操作,开发者可以专注于业务逻辑而不是繁琐的异步请求处理。同时,Struts2的Action...

    struts1+JSON实例

    Struts1是一个经典的Java Web框架,它为...通过学习这个实例,你可以掌握Struts1的MVC模式,理解数据库设计,以及掌握JSON和Ajax在实际项目中的应用。实践这些知识点,对于提升你的Java Web开发技能是非常有帮助的。

    Struts2与JSON

    首先,我们要理解Struts2整合JSON的基本流程。在Struts2中,我们可以通过Action类返回一个JSON结果类型,这样Struts2会自动将Action的属性转化为JSON格式并返回给客户端。客户端通常使用JavaScript库如jQuery来接收...

    Struts2整合jQuery实现Ajax功能

    Struts2 框架与 jQuery 的整合使得在 Java Web 应用中实现 AJAX 功能变得更加便捷高效。AJAX(Asynchronous JavaScript and XML)技术允许前端与后台进行异步通信,提升用户体验,无需刷新整个页面即可更新部分内容...

    struts2整合json,jquery样列

    在Struts2中整合JSON和jQuery,可以实现异步数据交换,提升Web应用的用户体验。 在Struts2中整合JSON,首先需要在Struts2的配置文件(如struts.xml)中定义一个Action,该Action返回JSON类型的结果。例如: ```xml...

    struts整合json用到Jar.zip

    以上就是关于Struts整合JSON的基本知识点,通过这些步骤,开发者可以让Struts2应用能够便捷地与客户端进行JSON数据的交互,提高应用的灵活性和用户体验。在实际项目中,还需要根据具体需求进行调整和优化。

    json+struts2整合jar包

    整合JSON和Struts2可以显著提升Web应用的响应速度和用户体验,因为JSON格式的数据比HTML更小、传输更快。同时,通过Struts2的插件,开发者无需深入理解JSON的细节,即可轻松实现服务器和客户端之间的数据交换。然而...

    ZTree+Struts2+ajax+json实现checkbox权限树

    综上所述,这个项目展示了如何整合前端的ZTree、Struts2框架,以及Ajax和JSON技术,实现一个动态的、基于checkbox的权限树,优化了权限管理的用户体验,同时通过存储过程减少了对数据库的频繁访问,提升了系统性能。

    jquery ajax json struts2最简单例子测试成功

    在IT行业中,jQuery、AJAX、JSON以及Struts2是四个非常重要的技术,它们在Web开发领域中扮演着核心角色。下面将详细解释这些技术及其相互间的集成。 **jQuery** 是一个快速、简洁的JavaScript库,它简化了HTML文档...

    Struts2_JSON_Demo

    在Struts2框架中集成JSON支持,可以使得Web应用更加动态和交互性强。下面我们将深入探讨Struts2与JSON的结合及其相关知识点。 1. **Struts2框架基础**: - **Action类**:在Struts2中,Action类是业务逻辑的载体,...

Global site tag (gtag.js) - Google Analytics