nutz ajax ie8,Nutz.Json 在Mvc中的用法

2023-11-16

Mvc中使用Json

第一种,输出用

@Ok("json:{locked:'password|salt'}")

第二种 输入用的

@AdaptBy(type=JsonAdaptor.class)

@Ok中的json

首先,必须再再再强调一次,如果返回值是String,即您自行生成Json字符串(无论是拼接的还是Json.toJson的还是用fastJson转的)

就别用@Ok("json"),而是用@Ok("raw:json"),否则字符串将再次转义,这样在页面端又得eval一次,而且下面的所有自定义配置统统无效

@Ok("json:xxx") 对应的类是 UTF8JsonView

最精简也是最常见的形式

@Ok("json")

// 等价于

@Ok("json:nice")

内置的模式,一对一对应JsonFormat中的几个快捷方法

/**

* 一般模式 -- 换行,但忽略null值

*/

@Ok("json:nice")

/**

* 全部输出模式 -- 换行,不忽略null值

*/

@Ok("json:full")

/**

* 为了打印出来容易看,把名字去掉引号

*/

@Ok("json:forLook")

/**

* 紧凑模式 -- 无换行,忽略null值

*/

@Ok("json:compact")

/**

* 不换行,不忽略空值

*/

@Ok("json:tidy")

详细配置, 后面的就是JsonFormat的json形式而已,与JsonFormat的属性一一对应

@Ok("json:{ignoreNull:true, locked:'password|salt'}")

// 翻译为Java代码的话

Json.toJson(obj, new JsonFormat().setIgnoreNull(true).setLocked("password|salt"))

示例配置 -- 忽略password和salt属性,且缩进为一个空格

@Ok("json:{indentBy:' ', locked:'password|salt'}")

示例配置2 -- 设置日期格式为yyyyMMdd

@Ok("json:{dateFormat:'yyyyMMdd'}")

AdaptBy的说明

JsonAdaptor 适配器本身并没有什么可以配置的东西

@AdaptBy(type=JsonAdaptor.class)

传输的数据应为POST或PUT,且请求体整个就是一个JSON字符串,而不是表单参数哦

示例代码,页面发送一个User类的json到服务器, 同理可以发送List,Map等等, 然后服务器用json响应

页面端的代码

$.ajax({

url : ${base}/user/update

type : "POST",

data : $.toJSON({ id: 88, name:"wendal", location : "地球" }),

dataType : "json", // 这是服务器响应的数据格式,不是发送内容的格式

success : function (re) {

if (re.ok) {

console.log(re.data.id);

console.log($.toJSON(re.data));

}

}

});

服务器端的入口方法

@AdaptBy(type=JsonAdaptor.class)

@At("/user/update")

@Ok("json:{locked:'password|salt'}")

public Object update(@Param("..")User user) {

NutMap re = new NutMap();

if (user == null || user.getId() < 1) {

re.put("ok", false);

re.put("msg", "null object");

return re;

}

int count = dao.update(user);

if (count != 1) {

re.put("ok", false);

re.put("msg", "no user match");

return re;

}

re.put("data", dao.fetch(User.class, user.getId));

re.put("ok", true);

return re;

}

Chrome控制台将打印

id=88

{

id : 88,

name : "wendal",

location : "地球"

// 其他属性,但没有password和salt出现

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nutz ajax ie8,Nutz.Json 在Mvc中的用法 的相关文章

  • IDEA从安装到使用--相关配置详解

    IDEA从安装到使用 相关配置详解 作为一个技术小白 刚开始学习使用Intellij IDEA 入门时踩了很多的坑 这里写下我的第一篇博客 分享相关IDEA的配置方法 希望能为各位提供一点帮助 IDEA2018安装及破解 作者 志哥的成长笔
  • 大数(四则运算)

    四则运算 大数加法 高精度加法 大数减法 大数乘法 大数乘法 幂运算 大数乘法 高精度幂运算 大数除法 大数加法 思路 从后往前算 即由低位向高位运算 计算的结果依次添加到结果中去 最后将结果字符串反转 输入的时候两个数都是以字符串的形式输
  • 网站架构演变

    网站架构演变 大型网站介绍 与传统企业应用系统相比 大型互联网网站系统具有以下特点 1 大流量 高并发 这一点往往是传统企业应用系统根本就不会遇到的问题 比如Goole每日访问量都是几十亿 如果服务器端处理不好早就被压的宕机了 2 高可用
  • 环形缓冲区(1)

    声明 参考韦东山视频教程 如若侵权请告知 马上删帖致歉 个人总结 如有不对 欢迎指正 环形缓冲区 环形缓冲区的几个基本操作 申请内存空间 写操作 读操作 环形缓冲区小结 判断缓冲区是否为空 判断缓冲区是否写满 构建环形缓冲区 在 h文件中声
  • 【Augmentation Zoo】RetinaNet + VOC + KITTI的数据预处理-pytorch版

    整合前段时间看的数据增强方法 并测试其在VOC和KITTI数据上的效果 我的工作是完成了对VOC和KITTI数据的预处理 RetinaNet的模型代码来自pytorch retinanet 该项目github仓库在 https github
  • 中标麒麟+达梦数据库 无效的列名[AAAAAAAAAAAAAFS]

    目录 前言 解决办法 中标麒麟 解决办法 windows 前言 今天我将项目部署到中标麒麟服务器 发现原本好使的功能 只要一做添加操作就报如下错误 虽然报错 但数据还是添加了进去 这让我十分费解 解决办法 中标麒麟 问题出现在返回新增结果时
  • Next.js中使用antd修改其组件的默认样式

    在项目中使用了next js搭配了antd 其中需要自定义antd样式 在next js中如果想定义css 我用到的有两种方式 一种是直接使用行内式 div test div 另一种就是写一个css文件后引入 定义一个test module
  • SpringBoot(5)-SpringBoot整合其他项目

    SpringBoot 5 SpringBoot整合其他项目 1 整合Druid数据库连接池 1 1学习地址 1 2application yml 1 3访问一下 1 4随便执行一下新增 2 整合Redis 2 1添加redis pom依赖
  • mimikatz

    https blog gentilkiwi com mimikatz https github com ParrotSec mimikatz
  • C++day1(笔记整理)

    一 Xmind整理 二 上课笔记整理 1 第一个c 程序 hello world include
  • docker 四种网络模型

    一 docker网络基础知识 Docker在创建容器时有四种网络模式 bridge为默认不需要用 net去指定 其他三种模式需要在创建容器时使用 net去指定 bridge模式 使用 net bridge指定 默认设置 none模式 使用
  • java各类型String,int,char,long,StringBuilder,StringBuffer,Integer之间的转换总结

    String和char类型之间的转换 1 String char 因为String是字符串 而char是单个字符 只能把String 转化为char数组 方法为 char ch str toCharArray 2 char String 方
  • cmake命令之target_include_directories

    一 介绍 命令格式 target include directories
  • 完整的芯片反向设计流程原来是这样的!(实例讲解)

    完整的芯片反向设计流程原来是这样的 实例讲解 作者 时间 2018 02 23来源 网络收藏 现代IC产业的市场竞争十分激烈 所有产品都是日新月异 使得各IC设计公司必须不断研发新产品 维持自身企业的竞争力 IC设计公司常常要根据市场需求进
  • 在JavaScript的ES5版本中Array数组的reduce方法详解

    函数声明 reduce callback initialValue 参数说明 callback 回调函数 格式为function prev next initialValue 初始值 可选参数 返回值 最后一次执行callback 回调函数
  • SOME/IP

    SOME IP 名词解释 SOME IP 全称是 Scalable service Oriented MiddlewarE over IP 也就是基于 IP 协议的面向服务的可扩展性通信中间件协议 面向服务 SOA 基于 IP 协议之上的通
  • springcloud动态加载日志路径和log.path_IS_UNDEFINED目录问题

    多模块工程中通常需要将不同模块服务的日志输出到指定的目录 日志目录结构如下 logs app1 app2 基于上述需要 需要在logback spring xml中动态读取application yml 或者application prop
  • 简单的tcpdump抓包使用总结:抓取指定ip、指定网卡、指定端口的包

    1 今天由于需要抓包研究网络问题 所以研究了一下抓取指定ip 指定网卡 指定端口的包并且输入到文件中 2 tcpdump与Wireshark介绍 在网络问题的调试中 tcpdump应该说是一个必不可少的工具 和大部分linux下优秀工具一样
  • ES使用小结

    ES使用总结 1 查询es全部索 2 根据es索引查询文档 3 查看指定索引mapping文件 4 默认查询总数10000条 5 删除指定索引文档 6 删除所有数据包括索引 7 設置窗口值 8 logstash简单配置 Logstash配置

随机推荐

  • 高德地图Amap常用功能总结

    设置缩放比例 1 设置缩放比例的api是 aMap moveCamera CameraUpdateFactory zoomTo 18 如果你直接设置是没用的 因为此时地图还没加载成功 所以要监听地图加载成功的事件 aMap setOnMap
  • MATLAB中均值、方差、均方差的计算方法

    1 均值 数学定义 Matlab函数 mean gt gt X 1 2 3 gt gt mean X 2 如果X是一个矩阵 则其均值是一个向量组 mean X 1 为列向量的均值 mean X 2 为行向量的均值 gt gt X 1 2 3
  • sql查询按两个字段查询重复记录

    1 sql查询按两个字段查询重复记录 代码如下 示例 select from 表名 a where a 字段1 in select 字段1 from 表名 group by 字段1 字段2 having count gt 1 and a 字
  • STM32通过ESP8266利用机智云平台实现手机远程操作

    STM32通过ESP8266利用机智云平台实现手机远程操作 将STM32作为主控芯片 ESP8266作为外设 利用串口传递信息 通过机智云平台实现STM32与手机之间的数据传输 之所以选择机智云平台 是因为机智云平台相关配套的软件工具非常齐
  • 【每日一题】Leetcode 刷题 二叉树-树的遍历 介绍

    二叉树 树的遍历 前序遍历 根 左 右 中序遍历 左 根 右 后序遍历 左 右 根 代码实现 前序遍历 中序遍历 后序遍历 完整代码 前序遍历 根 左 右 遍历顺序分别为 F B A D C E G I H 中序遍历 左 根 右 中序遍历顺
  • 常见的 HTML<meta> 标签的 name 属性及其作用

    HTML中的 标签可以通过 name 属性提供元数据 这些元数据可以用于指定有关文档的信息 以及控制浏览器和搜索引擎的行为 name 属性通常与其他属性一起使用 如 content charset http equiv 等 以提供更具体的元
  • 2022国赛34:路由器之间ISIS协议配置

    大赛试题内容 5 RT1以太链路 RT2以太链路之间运行ISIS协议 进程10 分别实现loopback3 之间ipv4互通和ipv6互通 RT1 RT2的NET分别为10 0000 0000 0001 00 10 0000 0000 00
  • web基础学习(十)CSS3之 @keyframes 、animation

    css3新增属性 keyframes 关键帧 可以帮助开发者不必依赖JavaScript 只使用css代码完成动画制作 那么如何使用 keyframes呢 这里有两个重要知识点 1 keyframes 定义关键帧 语法 keyframes
  • 低功耗技术——流水线设计(加法器和乘法器)

    文章目录 前言 一 流水线 1 16bit加法器 2 无符号4bit乘法器 3 编写一个4bit乘法器模块 并例化该乘法器求解c 12 a 5 b 二 降低FPGA功耗 1 静态功耗 2 动态功耗 前言 2023 3 31 今天学习降低功耗
  • Python——shutil模块

    os模块不仅提供了新建文件 删除文件 查看文件属性的操作功能 还提供了对文件路径的操作功能 但是 对于移动 复制 打包 压缩 解压文件及文件夹等操作 os模块没有提供相关的函数 此时需要用到shutil模块 shutil模块是对os模块中文
  • 秋招-数据结构-链表篇

    秋招 数据结构 链表篇 介绍 链表是一种物理存储单元上非连续 非顺序的存储结构 数据元素的逻辑顺序是通过链表中的指针链接次序实现的 链表由一系列结点 链表中每一个元素称为结点 组成 结点可以在运行时动态生成 每个结点包括两个部分 一个是存储
  • Java 与 区块链技术_java区块链技术有哪些主要的特点和应用

    java区块链技术有哪些主要的特点是什么 人们对于区块链技术比较熟悉 但是却并不知道它到底有哪一些概念 java区块链技术有哪些人有接触过呢 有很多人都会觉得区块链技术就好像是我们最初所认识的互联网一样 要想有效解决陌生人之间的信任问题 首
  • Android零基础—环境搭建

    转载原文 http blog csdn net tangjie134 article details 79481581 1 Android Studio 3 0和SDK获取 方式1 进入 Android Developers官方网站下载 方
  • 在Linux命令行终端中写python代码的简单操作

    Linux终端中的操作均是使用命令行来进行的 因此 对于小白来说 熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来 打开命令行窗口 打开命令行窗口的快捷键如下 Ctrl Alt t 关闭名命令行窗口 关闭
  • 华为消费者算法岗一面二面

    不吹不黑 u1s1 华为是我面的几家公司里面一面二面相对简单的 没怎么问基础知识 对项目的探讨会更多一点 所以其实也看个人 如果有的小伙伴对项目不是很熟 对基础知识比较熟可能会觉得有点难 一面 逐个介绍简历里的项目 然后自己挑一个进行详细介
  • 在外包公司熬了 3 年终于进了字节,竭尽全力....

    其实两年前校招的时候就往字节投了一次简历 结果很明显凉了 随后这个理想就被暂时放下了 但是这个种子一直埋在心里这两年除了工作以外 也会坚持写博客 也因此结识了很多优秀的小伙伴 从他们身上学到了特别多东西 把这次面试分享出来 也是希望可以帮助
  • C语言:函数指针和指针函数学习

    一 指针函数 定义 指针函数就是返回值类型是指针的函数 后面说的是本身是什么 前面说的是返回值类型是什么 声明方法 类型标识符 函数名 参数列表 int fun int x int y int fun int x int y int fun
  • 使用C++来创建界面

    上节讲到 Qt 支持两种创建界面的方式 一种是使用C 代码 Qt 自诞生以来就支持 另一种是使用 QML 可以创建个性化的界面 Qt 提供了多种工程类型 选择不同的工程类型将导致使用不同的方式来创建界面 本节先讲解C 的使用 首次打开Qt
  • netty 无阻塞队列 MpscArrayQueue,一个字就是快

    netty提供了高效的线程安全的队列 MpscArrayQueue 一个字快 至于快的原因可以去查看相关的文章 内存的伪共享先关的内容 import static java lang Thread sleep import io netty
  • nutz ajax ie8,Nutz.Json 在Mvc中的用法

    Mvc中使用Json 第一种 输出用 Ok json locked password salt 第二种 输入用的 AdaptBy type JsonAdaptor class Ok中的json 首先 必须再再再强调一次 如果返回值是Stri