首页 > [Struts2应用开发] JSON的应用

[Struts2应用开发] JSON的应用

在日常的WEB应用开发过程中,前端常会涉及AJAX,而前台与后台的交互常用的数据格式就是JSON。

Struts2中使用JSON的方法方法如下:

Action:

如果action中的某些属性不需要在json里面出现,可以通过annotation :@JSON(serialize=false)来标记改属性不需返回至JSON。

注意,如果某属性没有get方法,则该属性亦不会在返回JSON串里面出现。

import java.util.List;import org.apache.struts2.json.annotations.JSON;
import com.opensymphony.xwork2.Action;public class UsersAction extends BaseAction implements Action {private String userID;private String userName;private String userPwd;private String employeeName;private String userIDs;private UsersService usersService;private String queryString;private List userList;@JSON(serialize=false)public List getUserList() {return userList;}public void setUserList(List userList) {this.userList = userList;}public String getUserID() {return userID;}public void setUserID(String userID) {this.userID = userID;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserPwd() {return userPwd;}public void setUserPwd(String userPwd) {this.userPwd = userPwd;}public String getEmployeeName() {return employeeName;}public void setEmployeeName(String employeeName) {this.employeeName = employeeName;}public String getUserIDs() {return userIDs;}public void setUserIDs(String userIDs) {this.userIDs = userIDs;}@JSON(serialize=false)public UsersService getUsersService() {return usersService;}public void setUsersService(UsersService usersService) {this.usersService = usersService;}public String getQueryString() {return queryString;}public void setQueryString(String queryString) {this.queryString = queryString;}public String editUsers(){LS_PT_MST_USERS entity = usersService.get(Integer.parseInt(this.userID));this.userName = entity.getUSERNAME();this.userPwd = entity.getUSERPWD();this.employeeName = entity.getEMPLOYEENAME();return SUCCESS;}    @Overridepublic String execute() throws Exception {// TODO Auto-generated method stubreturn null;}}

struts.xml

在配置文件中,package必须继承json-default。在需要返回json的action定义中,result type=json。

xml version="1.0" encoding="UTF-8"?>
DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd">
<struts><package name="ptsystem" extends="json-default"><action name="add*" class="{1}Action" method="add{1}"><result name="success" type="redirectAction">show{1}result>action><action name="edit*" class="{1}Action" method="edit{1}"><result type="json">result>action><action name="update*" class="{1}Action" method="update{1}"><result name="success" type="chain">show{1}result>action><action name="delete*" class="{1}Action" method="delete{1}"><result name="success" type="chain">show{1}result>action><action name="show*" class="{1}Action" method="show{1}"><result name="success">/setting/{1}List.jspresult>action><action name="query*" class="{1}Action" method="query{1}"><result name="success">/setting/{1}List.jspresult>action>package><constant name="struts.multipart.parser" value="jakarta">constantconstant><constant name="struts.i18n.encoding" value="gbk" />
struts>

转载于:https://www.cnblogs.com/enixyu/archive/2012/09/19/2693412.html

更多相关:

  • importjava.security.SecureRandom;importjavax.crypto.Cipher;importjavax.crypto.SecretKey;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESKeySpec;//结果与DES算...

  • 题目:替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 <= s 的长度 <= 10000 解题: 时间复杂度:O(n) 空间复杂度:O(n) class Solution { public:s...

  • 在C++11标准库中,string.h已经添加了to_string方法,方便从其他类型(如整形)快速转换成字面值。 例如: for (size_t i = 0; i < texArrSize; i++)RTX_Shader.SetInt(string("TexArr[") + to_string(i) + "]", 7 + i);...

  • Ubuntu 14.04安装并升级之后,变成楷体字体非常难看,我昨天搞了一晚上,终于理了个头绪,这里整理一下。 经过网上调研,大家的一致看法是,使用开源字体库文泉驿的微黑字体效果比较理想,甚至效果不输windows平台的雅黑字体。下面我打算微黑来美化Ubuntu 14.04. 1.安装文泉驿微黑字体库 sudo aptitude...

  • 使用string时发现了一些坑。 我们知道stl 容器并不是线程安全的,所以在使用它们的过程中往往需要一些同步机制来保证并发场景下的同步更新。 应该踩的坑还是一个不拉的踩了进去,所以还是记录一下吧。 string作为一个容器,随着我们的append 或者 针对string的+ 操作都会让string内部的数据域动态增加,而动态增加的...

  • 在.Net Framework中,配置文件一般采用的是XML格式的,.NET Framework提供了专门的ConfigurationManager来读取配置文件的内容,.net core中推荐使用json格式的配置文件,那么在.net core中该如何读取json文件呢?1、在Startup类中读取json配置文件1、使用Confi...

  •   1 public class FrameSubject extends JFrame {   2    3   …………..   4    5   //因为无法使用多重继承,这儿就只能使用对象组合的方式来引入一个   6    7   //java.util.Observerable对象了。   8    9   DateSub...

  • 本案例主要说明如何使用NSwag 工具使用桌面工具快速生成c# 客户端代码、快速的访问Web Api。 NSwagStudio 下载地址 比较强大、可以生成TypeScript、WebApi Controller、CSharp Client  1、运行WebApi项目  URL http://yourserver/swagger 然后...

  •   在绑定完Action的所有参数后,WebAPI并不会马上执行该方法,而要对参数进行验证,以保证输入的合法性.   ModelState 在ApiController中一个ModelState属性用来获取参数验证结果.   public abstract class ApiController : IHttpController,...

  • 1# 引用  C:AVEVAMarineOH12.1.SP4Aveva.ApplicationFramework.dll C:AVEVAMarineOH12.1.SP4Aveva.ApplicationFramework.Presentation.dll 2# 引用命名空间, using Aveva.Applicati...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 这是第三部分,完成效果如下 图1 建图和导航 三、使用RTAB-Map进行建图和导航 1. rtab...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 由于之前的虚拟机性能限制,我在这个项目中使用了新的ubantu 16.04环境,虚拟机配置 内存 8GCPU...

  • [{name:1},{name:2}].forEach((v,i,ar) => {console.log(v,i,ar)});//基础遍历[{name:1},{name:2}].map((v) => v.name);//[1,2]返回对象数组中指定字段值的一位数组(不改变原始数组)[{name:1},{name:2},{name:3}...

  • 体验内容 使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。 1. 安装一些依赖包 sudo apt-get install ros-melodic-move-base* sudo apt-get install ros-melodic-map-server* sudo apt-get insta...

  • 前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射,比如http接口中 用户传入了url,我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C++ 并没有友好得支持这样的操作,而最近工作中需要通过C++实现http接口,这个过程想要代码实现得优雅...