`
PerfectPlan
  • 浏览: 122204 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts-JSON的提高开发效率

阅读更多

 

关于Struts-JSON的提高开发效率


一、JSON是什么?

:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解

析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

 

 

二 、struts2对于JSON有什么支持?

:struts2提供了一个struts2-json-plugin.jar 用于支持JSON的使用。当我们在struts2中使用JSON的时候

必须导入struts2-json-plugin.jar

并且需要一下几点:

 

1.<package name="struts2" extends="json-default">

       //必须是继承struts2-json-plugin.jar中struts-plugin.xml文件中的定义的json-default

       /* struts2-json-plugin.jar中struts-plugin.xml配置信息:

         <struts>

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

                           <result-types>

                           <result-type name="json" class="org.apache.struts2.json.JSONResult"/>

                           </result-types>

                           <interceptors>

                           <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>                                        </interceptors>

           </package>

 

        </struts>

 

       通过配置信息我们可以知道:

          1.json-default其实是继承了struts-default的

          2.定义了一个name为json的返回类型和一个name为json的拦截器 */

 

         2.<action name="*" class="*"><result name="success" type="json"/></action>//我们需要将result

         的 返回类型定义为json

 

三、关于JSON在struts.xml中的一些属性的功能。

 

<action name="*"  class="*">
		
    <result name="success" type="json">
   <param name=""></param>//关于对JSON的一些定义
   /*excludeProperties   //代表排除Action中的哪些属性,排除多个属性时,使用逗号进行分隔(即不需要序列化的属性)
   例:<param name="excludeProperties">age</param>  排除getAge()这个方法 为什么是排除这个方法下面详解
					
      includeProperties   //代表包含Action中的哪些属性,包含多个属性是,使用逗号进行分隔(即需要序列化的属性)
   例:<param name="includeProperties">address</param>包含getAddress()这个方法 为什么是包含这个方法下面详解
					
     excludeNullProperties //代表排除Action中属性值为空的字段
   例:<param name="excludeNullProperties">true</param> 使用true/false 默认为false(即包含属性值为null的字段)
					
    root  //代表从哪里开始序列化
   例:<param name="root">person</param> person对应的可以是一个属性,也可以是一个对象,也可以是一个集合
	 //当在这里定义后,只会将person进行序列化,如果person是一个对象,则会将person对象中所有的getter方法都进行序列化
					
	注意:如果相同属性同时定义了excludeProperties和includeProperties
        那么excludeProperties的优先级要高,因此不对
	该属性进行序列化
		*/
	</result>
</action>

  四、关于JSON在Action对象中注解的使用。

:对于JSON的注解主要有一下几个属性可以定义
name:指定序列化的时候对应的名称
/*

  例:@JSON(name = "myname") 则在客户端接收到的JSON中UserName属性对应的地方为 :
                     {myname:"张三"} 以前的则是{username:"张三"}
     public String getUsername() {
return username;
     }
*/
serialize:对该方法进行序列化  true/false
/*
例:@JSON(serialize=true) 对该方法序列化,如果为false则不进行序列化
public String getUsername() {
return username;
}
*/
deserialize:不对该方法进行序列化  true/false
/*
例:@JSON(deserialize=true) 不对该方法序列化,如果为false则进行序列化
public String getUsername() {
return username;
}
*/
format:设置JSON对该方法的转换方式,一般用于对时间进行转换 
/*
例:@JSON(format="yyyy-MM-dd")  则客户端接收的JSON中date对应的值为:
                                              {date:"2011-10-2"}
public Date getDate() {
return date;
}
*/

 

五、具体的实例:

 

			Action:
				package org.viancent.action;

				import java.util.Date;
				import org.apache.struts2.json.annotations.JSON;
				import com.opensymphony.xwork2.ActionSupport;
				public class GetJsonAction extends ActionSupport {
					
					private String username;
					private String password;
					private int age;
					private Date date;

					@JSON(serialize = false)
					public String getUsername() {
						return username;
					}

					public void setUsername(String username) {
						this.username = username;
						}
					
					@JSON(name="mypassword")
					public String getPassword() {
						return password;
					}

					public void setPassword(String password) {
						this.password = password;
					}

					public int getAge() {
						return age;
					}

					public void setAge(int age) {
						this.age = age;
					}
					
					@JSON(format="yyyy-MM-dd")
					public Date getDate() {
						return date;
					}

					public void setDate(Date date) {
						this.date = date;
					}

					@Override
					public String execute() throws Exception {
						this.setDate(new Date());
						this.setAge(10);
						this.setPassword("world");
						this.setUsername("hello");
						return SUCCESS;
					}
				}

  struts.xml

				<struts>
					<package name="struts2"  extends="json-default">
					//这里一定要继承json-default
						<action name="getjsons" class="org.viancent.action.GetJsonAction">
							<result name="success"  type="json">
							//这里一定要定义type属性为json
								<param name="excludeProperties">age</param>		
							//排除getAge()方法			
							</result>
						</action>

					</package>
				</struts> 

  JSP:

				<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

				<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
				<html>
					<head>
						<script type="text/javascript" src="WEB-JS/jquery-1.5.1.js"></script>	//使用jquery一定要导入js
						
								<script type="text/javascript"> //使用jquery实现异步提交
									function getJson() {
										$.post(
											"/struts2/getjsons.action",{},function(returnedData,status)
											{
												if("success"==status)
												{
													alert(returnedData);
												}
											}
										)
									}
								</script>
					</head>
					<body id="theBody">
						<input type="button" value="GetJson" onclick="getJson();">

					</body>
				</html>

  得到的结果为:{"date":"2011-03-21","mypassword":"world"} 

//使用浏览器的bug工具查看 alert(returnedData);弹出来的只是 [object,Object]
//这里我们可以看见password的名称已经改为mypassword了 而设定那么的data属性,名称则没有变
分享到:
评论

相关推荐

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web开发中,它易于人阅读和编写,同时也易于机器解析和...这种前后端分离的模式在现代Web开发中非常常见,大大提高了开发效率和应用性能。

    struts2-json-plugin-2.3.8.jar

    Struts2 JSON Plugin是针对Apache Struts2框架的一个重要组件,版本为2.3.8。这个插件主要的功能是让Struts2应用程序能够轻松地...对于Java Web开发者而言,理解和熟练使用这个插件是提升开发效率和应用性能的关键。

    struts2-json-plugin源码

    Struts2是一个非常流行的Java Web框架,用于构建可维护、可扩展且结构良好的应用程序。...深入研究源码可以提高开发效率,解决实际开发中遇到的问题,如处理复杂对象的序列化、优化JSON响应速度等。

    struts2-json-plugin-2.1.8jar包.zip

    这大大简化了服务器端与客户端之间通过HTTP传递JSON数据的过程,提高了开发效率。 要使用此插件,首先需要在Struts2的配置文件(如struts-default.xml或struts-plugin.xml)中引入JSON插件的配置,通常会添加以下...

    struts2--json包

    总结起来,Struts2的JSON包极大地简化了Java Web应用中JSON数据的处理,使得开发人员可以轻松地进行前后端数据交互,提高了开发效率和用户体验。正确理解和利用这个功能,对于构建高效的Struts2应用程序至关重要。

    struts2-json

    Struts2是一个非常著名的Java Web框架,用于构建企业级...总的来说,Struts2与JSON的结合简化了Web应用的开发流程,提高了数据交换的效率。但是,同时也需要关注其安全性,确保在享受便利的同时,不会引入潜在的风险。

    struts2-json-lib

    通过这样的整合,开发者可以轻松地在Struts2应用中创建RESTful API,便于前后端分离的开发模式,提高开发效率。同时,JSON的轻量级特性也使得数据传输更加高效,降低了服务器和客户端的负担。 总之,"struts2-json-...

    struts2-json包集合 不会出现任何报错

    综上所述,这个压缩包集合提供了一个完整的解决方案,确保了Struts2框架与JSON库的兼容性,使得开发者在处理JSON数据时能避免常见的错误,提高开发效率。通过合理配置和使用这些库,可以创建高效、健壮的Struts2应用...

    Struts2-Json-Plugin 的使用.pdf

    Struts2-Json-Plugin 是一个专门为 Struts2 框架设计的插件,它使得在...它提供了灵活性和便利性,使得Struts2在互联网开发中的表现力更加强大,尤其在CS(客户端-服务器)架构中,能够有效地提升前后端交互的效率。

    Struts2-Json-Plugin 的使用.docx

    总之,Struts2-Json-Plugin为Struts2提供了方便且高效的JSON处理能力,使得开发人员在处理JSON数据时更加便捷,减少了手动转换的工作量,提高了开发效率。通过合理的配置和注解使用,可以实现灵活的序列化和反序列化...

    struts-2.5.2-all.zip

    同时,利用Struts 2的注解功能,可以进一步简化配置工作,提高开发效率。 总之,"struts-2.5.2-all.zip"是一个完整的Struts 2开发环境,涵盖了从基础功能到高级特性的所有组件,对于Java Web开发者来说,这是一个...

    struts-2.3.16.3-docs.zip

    Struts 2是Java平台上的一个开源MVC框架,它为构建基于J2EE的Web应用程序提供了...这将极大地提高你在开发基于Struts 2的应用程序时的效率和质量。记得定期检查更新,因为框架的后续版本可能会引入更多的增强和改进。

    struts-2.5.22-all.zip

    Struts2是一个非常著名的Java Web开发框架,由Apache软件基金会维护。它的主要目的是提供一个用于构建企业级Web应用程序的MVC...通过深入理解并熟练运用其中包含的各种组件和机制,可以显著提升开发效率和代码质量。

    Struts2.5操作JSON相关jar包

    Struts2.5是Apache软件基金会的开源框架Struts的最新版本,主要用于构建基于...通过合理配置和使用,开发者可以提高Web应用的开发效率和用户体验。理解并熟练掌握这些知识点,对于开发基于Struts2的Web项目至关重要。

    beetl-json

    【beetl-json】是一个专为Java开发人员设计的库,用于将后端处理的数据转换成JSON(JavaScript Object Notation)格式,以便于前端应用程序进行...通过深入了解和实践,你可以充分利用其特性,提升你的后端开发效率。

    struts-2.5.20-all.zip

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它由Apache软件基金会维护。...了解并熟练掌握Struts2框架的原理和使用,对于Java Web开发者来说是提升项目开发效率的重要途径。

    struts-2.3.31-all.zip

    5. **注解支持**:Struts2支持使用注解进行配置,减少了XML配置文件的使用,提高了开发效率。 6. **Freemarker和JSP视图技术**:Struts2可以与Freemarker或JSP一起工作,用于渲染视图。Freemarker是一种模板语言,...

    struts-2.1.6_jar包(全)

    此外,Struts 2的注解功能和约定优于配置(Convention over Configuration)原则也是提高开发效率的重要特性。 总的来说,"struts-2.1.6_jar包(全)"提供了一个完整的Struts 2.1.6环境,帮助开发者快速启动Java Web...

    struts-2.1.8-all-src.zip

    Struts2是一个非常著名的Java Web框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性、可扩展性极高的Web...在实际项目中,了解源码可以帮助开发者更高效地调试和优化应用,提升开发效率。

    struts-2.3.15

    Struts 2是Struts 1的升级版,它在继承了Struts 1优点的基础上,融合了WebWork框架的特性,极大地提高了开发效率和代码质量。 1. **MVC架构**:Struts 2的核心是MVC设计模式,它将业务逻辑、数据模型和用户界面分离...

Global site tag (gtag.js) - Google Analytics