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

告别专线!用FortiGate 201E的SD-WAN功能,把手机热点变成办公网第二条宽带(附完整配置截图) 本文详细介绍了如何利用FortiGate 201E的SD-WAN功能,将手机热点转化为企业级备用链路,实现高可用混合办公网络。通过智能选路和带宽聚合技术,企业可以在零成本下提升网络冗余和业务连续性,特别适合中小企业数字化转型需求。 阅读详情

关于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中的一些属性的功能。

 

Java代码  收藏代码
  1. <action name="*"  class="*">  
  2.           
  3.     <result name="success" type="json">  
  4.    <param name=""></param>//关于对JSON的一些定义  
  5.    /*excludeProperties   //代表排除Action中的哪些属性,排除多个属性时,使用逗号进行分隔(即不需要序列化的属性) 
  6.    例:<param name="excludeProperties">age</param>  排除getAge()这个方法 为什么是排除这个方法下面详解 
  7.                      
  8.       includeProperties   //代表包含Action中的哪些属性,包含多个属性是,使用逗号进行分隔(即需要序列化的属性) 
  9.    例:<param name="includeProperties">address</param>包含getAddress()这个方法 为什么是包含这个方法下面详解 
  10.                      
  11.      excludeNullProperties //代表排除Action中属性值为空的字段 
  12.    例:<param name="excludeNullProperties">true</param> 使用true/false 默认为false(即包含属性值为null的字段) 
  13.                      
  14.     root  //代表从哪里开始序列化 
  15.    例:<param name="root">person</param> person对应的可以是一个属性,也可以是一个对象,也可以是一个集合 
  16.      //当在这里定义后,只会将person进行序列化,如果person是一个对象,则会将person对象中所有的getter方法都进行序列化 
  17.                      
  18.     注意:如果相同属性同时定义了excludeProperties和includeProperties 
  19.         那么excludeProperties的优先级要高,因此不对 
  20.     该属性进行序列化 
  21.         */  
  22.     </result>  
  23. </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;
}
*/

 

五、具体的实例:

Java代码  收藏代码
  1. Action:  
  2.     package org.svse.action;  
  3.   
  4.     import java.util.Date;  
  5.     import org.apache.struts2.json.annotations.JSON;  
  6.     import com.opensymphony.xwork2.ActionSupport;  
  7.     public class GetJsonAction extends ActionSupport {  
  8.           
  9.         private String username;  
  10.         private String password;  
  11.         private int age;  
  12.         private Date date;  
  13.   
  14.         @JSON(serialize = false)  
  15.         public String getUsername() {  
  16.             return username;  
  17.         }  
  18.   
  19.         public void setUsername(String username) {  
  20.             this.username = username;  
  21.             }  
  22.           
  23.         @JSON(name="mypassword")  
  24.         public String getPassword() {  
  25.             return password;  
  26.         }  
  27.   
  28.         public void setPassword(String password) {  
  29.             this.password = password;  
  30.         }  
  31.   
  32.         public int getAge() {  
  33.             return age;  
  34.         }  
  35.   
  36.         public void setAge(int age) {  
  37.             this.age = age;  
  38.         }  
  39.           
  40.         @JSON(format="yyyy-MM-dd")  
  41.         public Date getDate() {  
  42.             return date;  
  43.         }  
  44.   
  45.         public void setDate(Date date) {  
  46.             this.date = date;  
  47.         }  
  48.   
  49.         @Override  
  50.         public String execute() throws Exception {  
  51.             this.setDate(new Date());  
  52.             this.setAge(10);  
  53.             this.setPassword("world");  
  54.             this.setUsername("hello");  
  55.             return SUCCESS;  
  56.         }  
  57.     }  
  struts.xml
Java代码  收藏代码
  1. <struts>  
  2.     <package name="struts2"  extends="json-default">  
  3.     //这里一定要继承json-default  
  4.         <action name="getjsons" class="org.svse.action.GetJsonAction">  
  5.             <result name="success"  type="json">  
  6.             //这里一定要定义type属性为json  
  7.                 <param name="excludeProperties">age</param>       
  8.             //排除getAge()方法            
  9.             </result>  
  10.         </action>  
  11.   
  12.     </package>  
  13. </struts>   

  JSP:

Java代码  收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2.   
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  4. <html>  
  5.     <head>  
  6.         <script type="text/javascript" src="WEB-JS/jquery-1.5.1.js"></script>   //使用jquery一定要导入js  
  7.           
  8.                 <script type="text/javascript"> //使用jquery实现异步提交  
  9.                     function getJson() {  
  10.                         $.post(  
  11.                             "/struts2/getjsons.action",{},function(returnedData,status)  
  12.                             {  
  13.                                 if("success"==status)  
  14.                                 {  
  15.                                     alert(returnedData);  
  16.                                 }  
  17.                             }  
  18.                         )  
  19.                     }  
  20.                 </script>  
  21.     </head>  
  22.     <body id="theBody">  
  23.         <input type="button" value="GetJson" onclick="getJson();">  
  24.   
  25.     </body>  
  26. </html>  

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

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

struts2返回json数据的方法一 使用json-default NULL 博文链接:https://firezhfox.iteye.com/blog/1730549 立即下载

相关推荐

具身智能端到端大模型VLA (Vision Language Action)

在语言为条件的机器人任务中,策略必须具备理解语言指令、视觉感知环境并生成适当动作的能力,这就需要VLA的。例如,在自动驾驶领域,传统的做法是将感知、预测、规划等步骤分开处理,而VLA则试图用一个统一的框架来替代这种分立的方法。另外,VLA的模型对于算力的需求很大,单片AI算力1000Tops的Thor大概率会延期发布,加上英伟达芯片的量产时间与成本挑战,以及在国内的应用情况,对车企而言是个大问题。以谷歌DeepMind推出的RT-2为例,该模型可以在新的物体、背景和环境中表现出显著改善的性能。

具身智能机器人 1万+

spring整合struts2,使用extends="json-default",且支持struts.xml文件自定义路径

  struts.xml配置文件,前台使用ajax请求对应的action,使用json的方式必须引入 以上的包。这些包部分来源 struts2.3.5的 blank lib目录下。想要整合spring struts2-core,struts2-json-plugin,strtus2-spring-plugin; &lt;package name="mainPackage" namesp...

success could be revenge的博客 1568

华为交换机实战:如何用ACL+流分类精准限制特定IP的网速(附完整命令)

本文详细介绍了华为交换机如何通过ACL+流分类技术实现精准IP限速,包括ACL规则配置、流分类关联、流行为定义及流策略应用等完整步骤。文章提供了实战命令和配置验证方法,帮助网络管理员有效管理带宽资源,解决特定IP占用过多带宽的问题。

weixin_29229055的博客 100

Action继承 json-default返回JSON类型的数据

json-default,struts

java进阶之路的博客 1368

STK中的传感器与通信组件:雷达、发射机、接收机与天线的协同建模

本文深入解析了STK软件中传感器、雷达、发射机、接收机与天线的协同建模方法。通过构建一个完整的卫星对地数传系统实例,阐述了各组件如何分工协作,实现从几何指向到射频链路的高保真仿真,为复杂航天通信与探测系统的设计与分析提供了高效、灵活的解决方案。

weixin_29271263的博客 273

Fluent基于低氧舱气体交换仿真(氮气与空气混合)

一、背景概述 模拟低氧舱充氮气和排除混合气体的过程,假设注入95%的氮气,舱内原有气体为空气,压力为标准大气压,温度为300K。观察气体注入过程中,舱内平均氮气和氧气浓度的变化。 二、Fluent设置 Setup 1、General type选择压力基 绝对速度 瞬态 重力勾选 2、Model 能量方程开启 组分运输开启,设置方法如下: 选择后OK,view就会变成Edit,点击Edit。然后再次点击Edit。 将组分中的非氮气氧气和空气的气体移除,右边选项需要将空气放在最后一位。 3、Materi

qq_35535616的博客 1万+

json配置中的excludeNullProperties 参数的作用

excludeNullProperties 参数:表示是不是去掉空值, 默认值是false,如果设置为true会自动将为空的值过滤,只输出不为空的值。             true            true  要是只想取出list对象集合中,对象的某几个属性,则需要下列配置: action name="recommendList" class="Vid

aaa1117a8w5s6d的专栏 4654

《AI大模型评测与智能测试》

第三篇“实践蓝图”(第6-7章)着眼于测试领域AI应用,重点介绍了RAG、AI Agent开发及构建端到端智能测试系统的方法。本书聚焦AI时代的“质量”核心,以“AI赋能测试”(AI For Testing)与“AI模型评测”(Testing For AI)为双轮驱动。内容不仅深入剖析如何科学度量AI大模型的内在质量,还系统讲解如何利用AI赋能传统软件测试,帮助读者贯通从模型原理、评测到应用开发的全链路知识。

酌沧 1142

struts2整合json出现no result type defined for type 'json'的解决方法

struts2的json plugin可以实现struts2和json的完美结合,由于本篇主要是介绍整合过程中遇到的问题,所以编程实现的方法这里就不重复了,具体可以参看struts2的官方文档:http://struts.apache.org/2.2.1.1/docs/json-plugin.html。 我在struts.xml中有如下action定义: <action name="...

weixin_30892889的博客 375

CAPL如何设置或修改CANoe TCP/IP协议栈的底层配置

MSS = MTU - tcpHeader - ipHeader,也就是MTU = MSS(1360) + tcpHeader(20) + ipHeader(20) = 1400,说明CAPL是可以动态设置网络底层配置参数的!然后在CAPL中设置此网卡MTU值为1400,然后创建UDP套接字,一次性发送2000个字节,在Trace窗口看看首帧报文二层Data的长度。所以我们还不能用UDP协议来验,应该用TCP协议来验,也就是在TCP三次握手时通过Tester的MSS值推导出自己的MTU值。

jasonj333 994

《网络安全自学教程》- OSI七层模型分层及作用,数据封装与解封过程,数据传输过程。

OSI分哪七层,每层的作用是什么,解释数据在七层模型中是怎样传输的,封包和解封过程,数据包在每一层是怎么封装和解封的。

wangyuxiang946的博客 1万+

Struts-JSON的提高开发效率

  关于Struts-JSON的提高开发效率 一、JSON是什么? :JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解 析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,...

PerfectPlan 202

智能工厂评估模型研究

摘要:通过对国内外现有智能制造评估模型的研究,结合重庆制造业行业领跑者与落后者之间差距大的现状,以实现全要素全连接的数字化工厂为出发点,融合工业互联网标识,构建实践可行的智能工厂评估模型推动中小型企业参与智能制造转型,缓和两极分化问题。本评估模型包含工厂体系架构的3个层级,提供用于推动智能制造转型的参考,包括设计、生产、管理的全过程评估。关键词:智能制造评估模型;智能制造转型;全连接工厂;工业互联网标识0 引言受行业需求与技术创新的影响,全球制造业在历经了工业1.0机械化、工业2.0电气化和工业3.0自动

罗伯特技术屋 679

struts2中的json插件struts2-json-plugin-2.3.4的使用(提供下载)

一,首先,这里提供jar包的网盘下载链接(若失效请留言): 链接:https://pan.baidu.com/s/1aOrj46eHm2HEp9i45DdCeQ 密码:1mce 二,作用:struts2框架提供,简化开发,简化json转换,完成前端Ajax请求后台的json数据自动转换,方便快捷。 三,struts.xml文件配置如下: 注意这里package包的extends=“json...

潜力股wjk的博客 3895

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Struts2返回JSON对象的方法总结

如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择。而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好的支持。但是,在开发工作中,对功能的升级是基于既定架构是很常见的情况。本人碰到需要用开发基于Struts2的HTTP+JSON返回类型接口就是基于既定框架结构下进行的。 St...

weixin_33910759的博客 71

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

struts2 ajax支持—dojo,Struts2与AJAX的相关概念以及使用Struts_Dojo插件.doc

Struts2与AJAX的相关概念以及使用Struts_Dojo插件Struts2与AJAX(第一部分)2009-05-08 08:40 by 墙头草, 749 visits,?网摘,?收藏,?编辑在当今——Web 2.0概念铺天盖地的Internet环境下,简易的AJAX集成对于一个成功的WEB框架来说是不可或缺的。因此,Struts 2其中的一个重要的功能(Feature)就是“First-c...

weixin_30134531的博客 347

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Struts2中json的使用总结

首先看下面的配置文件中的两种写法:当然Action所在的包必须继承json-default: 第一种: [html] view plaincopy action name="upload_*" class="uploadAction" method="{1}">               result type="json"> 

z69183787的专栏 3691

在Struts 2中使用JSON Ajax支持

Struts2的出现在Web2.0纷争的年代,以Ajax为代表的富客户端(Rich Client)应用正唱着Web2.0的主角。虽然Struts2本身对Ajax的应用也提供了自己的Ajax标签,但是这种比较牵强的支持也是赶鸭子上架,不是Struts本身的特长。     那该如何构建一个Rich Client的框架呢。我觉得JSON数据就有了用武之地了。JSON(Java Script Objec...

johnlee 115

Struts2 Junit测试

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

代码驱动世界,数字改变生活。 2852

一种java web开发框架组合的方案

struts2+ibatis+json实现快速java web2.0程序开发用struts2基本上做完了公司的一个项目,程序开发完以后总是总结一下的,之前的方案是struts2+spring+dwr这三种框架的组合,数据库操作用的Spring中的JdbcTemplate,一直对Hibernate不喜欢,以前在Hibernate 2的时候用它总报out of memory错误,可能H3的性能要比

程序员记事本 3021

GridReport报表数据解析及传递,struts自定义result的重要性

最近参与的项目,很多的地方都是需要报表的,因为牵扯各地区的费用及信息广泛。所以光报表就有200多张。看最近项目里报表编写的代码,有些想法,所以记录下来,一是分享,是自己也想吸收大家的意见。(注:这篇文章,不是讲某种报表的配置方法,而是报表应该怎么传输数据,更方便、快捷、有效的一种方案,有什么不足之处,提出来虚心受教,请不要谩骂)   1.大家都知道,报表有很多种,图形报表FusionChart...

iteye_14450的博客 386

[转]Struts2整合之动态图表OpenFlashChart

Java开源项目中制作图表比较出色的就是JFreeChart了,相信大家都听说过,它不仅可以做出非常漂亮的柱状图,饼状图,折线图基本图形之外,还能制作甘特图,仪表盘等图表。在Web应用中可以为项目增色不少。JFreeChart技术成熟,完全是通过Java代码控制图表生成,掌握难度不大。但是它的一个缺点就是所有资源在服务器端生成,需要占用大量的服务器资源,而且图表以流的形式输送到客户端也占用了大量的

awq14789的专栏 575

ajax json java,ajax_json,json与ajax

ajax_json,json与ajaxAJAX框架Day11、Ajax引言a) 概念 AsynchronousJavascriptAndXML (异步请求 javaScript And XML)b) 传统的请求传统请求的问题因为传统请求响应的是新的页面(刷新了页面)。所以用户就必须要等待响应结果,才可以进行后续的操作。用户体验差。建议在合适的场景下,都使用异步请求,提高...

weixin_39561004的博客 92
上一篇: 经常遇到string和date之间的转换
下一篇: 有关css和js针对不同浏览器兼容的问题
ZHA0KAl
博客等级 码龄16年 26粉丝 35原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值