前后台交互的工具类

在企业的实际开发过程中,前后的的交互基本都有公司自己封装的统一方法,应为这样的话更便于代码的编写。维护,以及新手更容易上手,而且这样代码的风格更加的统一。

1.首先前后台交互的时候主要用到的都是JsonObject。

对于JsonObject的封装每个项目经理都有自己的封装思想,当然我也有自己的封装考虑;

第一个,前后台交互的工具类、主要用户action护着controller层:

思路:

传入一个map和一个response:

map:封住了数据信息

response:用于返回

package com.csy.util;

import java.io.PrintWriter;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

public class ResponseUtil {

static JSONObject result = new JSONObject();//返回前台的map
/**
* 页面输出
* @param response
* @param o
* @throws Exception
*/
public static void write(HttpServletResponse response,Map map)throws Exception{
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
setMapValue(map);
out.println(result.toString());
out.flush();
out.close();
}

/**
* 将值放入返回前台的map
* @param valueMap
*/
public static void setMapValue(Map valueMap){
Set<Object> keys = valueMap.keySet();
for(Object key:keys){
result.put(key, valueMap.get(key));
}
}
}

2.此方法主要用在service和controller层的数据交互

package com.csy.util;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class ReturnMap extends HashMap<Object, Object> {
private static final long serialVersionUID = 1L;

private final String messageKey = "message"; //错误消息
private final String errorKey = "error"; //表示是否错误
private final String successKey = "success"; //表示是否错误

private String message;

private boolean error = false; //默认不成功

private boolean success = true;//默认不成功

public ReturnMap(){
super();
}

/**
*
* @param valueMap 需要返回界面的Map
*/
public ReturnMap(Map valueMap){
super();
setMapValue(valueMap);
}

/**
*
* @param valueMap 需要返回界面的Map集合
* @param error 是否错误
* @param message 错误message
*/
public ReturnMap(Map valueMap, boolean error, String message){
super();
setError(error);
setMessage(message);
setMapValue(valueMap);
}

public boolean isSuccess() {
return success;
}

public void setSuccess(boolean success) {
this.success = success;
this.error = !success;
this.put(successKey, success);
this.put(errorKey, !success);
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
this.put(messageKey, message);
}

public boolean isError() {
return error;
}

public void setError(boolean error) {
this.error = error;
this.success = !error;
this.put(errorKey, error);
this.put(successKey, !error);
}

public void setMapValue(Map valueMap){
Set<Object> keys = valueMap.keySet();
for(Object key:keys){
this.put(key, valueMap.get(key));
}
}

}

时间: 2024-11-16 10:58:29

前后台交互的工具类的相关文章

项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!

前言 系列文章:[传送门] 洗了个澡,准备写篇博客.然后看书了.时间 3 7 分.我慢慢规律生活,向目标靠近.  很喜欢珍惜时间像叮当猫一样 正文 慢慢地,二维码实现签到将要落幕了.下篇文章出二维码实现签到 这次 我们实现 javaweb http json 交互 in action 题目很长,但我想让你们看下,给我点意见. 开始吧 实战 本次以经典的登录作为案例.登录做的好也是经典. 服务端 和 app端,服务端简略,app端详细介绍... 服务端 资料: <spring> @Respons

项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!

前言 系列文章:[传送门] 洗了个澡,准备写篇博客.然后看书了.时间 3 7 分.我慢慢规律生活,向目标靠近.  很喜欢珍惜时间像叮当猫一样 正文 慢慢地,二维码实现签到将要落幕了.下篇文章出二维码实现签到 这次 我们实现 javaweb http json 交互 in action 题目很长,但我想让你们看下,给我点意见. 开始吧 实战 本次以经典的登录作为案例.登录做的好也是经典. 服务端 和 app端,服务端简略,app端详细介绍... 服务端 资料: <spring> @Respons

分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解

[博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708]https://www.cnblogs.com/m-yb/p/9986309.html分页功能的实现可以使用各种插件, 笔者今日闲来无事, 写了 分页工具类 前后台代码 Java JavaScript 的 实现及思路梳理.供大家参考.分页功能的需求一般有: 当前页/每页条数/总页数/总记录数/起始记录数/数

ajax与后台交互传输数据的工具类

public class Result<T> implements Serializable { private static final long serialVersionUID = 3637122497350396679L; private boolean success; private T data; private String msg; public Result() { } public Result(boolean success) { this.success = succ

Layui前后台交互数据获取java

Layui简介 Layui是一款适用于后台程序员的UI框架,学习成本低.Json数据格式交互前后台,并且也相当适用单页面开发.有兴趣的朋友可以看看layui官网. Layui前后台数据交互 layui有自己的一套特定的数据格式交互(这很重要),必须参数code:0,msg:"",count:数据size(int),data:"数据List".一般我们选择封装返回接收类. Layui前台js请求数据 其中 html代码 <link rel="style

自制MVC之工具类插件一

1).BreakRomoteURLAttribute 提交或交互的URL数据是否来源于其它地方,站内提交,防止跨站 2). DataAttribute 取得post或get提交的数据.如果没有特殊设置,取得的数据是sql注入.xss注入过滤的. 属性名 作用 默认值 选项说明 其它说明 IsEmpty 是否可以提交空数据,就是表单数值一个都没有的情况. true 必填 AspectPriority 插件执行优先级 空 可选 MD5Key 需md5加密的key,多个用逗号分隔. 10000 可选

一种工业级系统交互建模工具的应用--EventStudio System Designer

一种工业级系统交互建模工具的应用 [摘要] 本文以探索如何维护大规模复杂系统交互设计模型为目的,以EventHelix公司的商业付费软件EventStudio System Designer为建模工具,对大规模复杂系统的交互设计进行了应用,认为类ESSD的设计工具能大幅降低系统设计建模的开发和维护复杂度. [关键词] 系统交互建模  建模语言  EventStudio System Designer 一.问题的提出 软件开发人员日常工作中经常需要绘制系统交互流程图,比如顺序图和活动图等,以描述系

使用单例模式实现自己的HttpClient工具类

引子 在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient 来方便我们使用各种Http服务.你可以把HttpClient想象成一个浏览器,通过它的API我们可以很方便的发出GET,POST请求(当然它的功 能远不止这些). 比如你只需以下几行代码就能发出一个简单的GET请求并打印响应结果: try { // 创建一个默认的HttpClient HttpClient httpclient =new Default

【Android】详解7.0带来的新工具类:DiffUtil

一 概述 DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据集->新数据集的最小变化量. 说到数据集,相信大家知道它是和谁相关的了,就是我的最爱,RecyclerView. 就我使用的这几天来看,它最大的用处就是在RecyclerView刷新时,不再无脑mAdapter.notifyDataSetChanged(). 以前无脑mAdapter.notifyDataSetChanged()有两个缺点: 不会触发RecyclerView的动画(删除.