功能:在 jsp 页面将 java对象 转换为 json对象 (使用自定义EL函数实现)

步骤:

  • 1. 创建 JSP EL 工具类
  • 2. 创建 tld 文件
  • 3. 配置 web.xml 文件
  • 4. 完成 jsp 调用

1. 创建 JSP EL 工具类

package com.ljw.taglib;import com.alibaba.fastjson.JSON;/*** JSP EL 工具类**/
public class ElCommons {/*** 将对象中存在值的字段转换成为json串* @param obj* @return*/public static String toJsonString(Object obj){// 将java对象转换为json字符串// * 注意:我这里使用的是阿里巴巴的fastjson转换,可根据自己使用的json库调用转换方法String jsonString = JSON.toJSONString(obj); return jsonString;}
}

2. 创建 tld 文件(文件存放地址 /WEB-INF/el-common.tld)

<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"><tlib-version>1.0</tlib-version><short-name>el</short-name><!-- 将对象format成json字符串 --><function><!-- 指定当前标签的名称 --><name>toJsonString</name><!-- 指定当前标签的标签处理类 --><function-class>com.ljw.taglib.ElCommons</function-class><!-- 指定EL页面调用名字中实际调用的方法.指定处理类的实际方法.参数和回调函数要写完整路径 --><function-signature>String toJsonString(java.lang.Object)</function-signature><!-- 描述信息。 --><description>将对象 format 成 json 字符串</description><!-- 使用该标签的案例用法 --> <example>${el:toJsonString(value)}</example></function>
</taglib>

3. 配置 web.xml 文件 (在xml中添加此配置)

<jsp-config><!-- 自定义标签库 --><taglib><!-- 配置标签的引用地址 JSP页面中引用时使用-->  <taglib-uri>el-common</taglib-uri>  <!-- 配置标签的TLD文件地址 -->  <taglib-location>/WEB-INF/el-common.tld</taglib-location>  </taglib>
</jsp-config>

4. 完成 jsp 调用

4.1 后台设置数据示例(将对象数据添加至 request(根据自己使用的框架编写相应代码,这里使用 springMVC))

/*** 查询商品信息页面* @param id* @return*/
@RequestMapping("/show/{id}")
public ModelAndView show(@PathVariable("id")int id) {ModelAndView view = new ModelAndView("/base/commodity/commodity_show");CommodityVo model = commodityService.findById(id);view.addObject("model",model); // 设置 model 对象数据return view;
}/*** 修改商品页面* @param id* @return*/
@RequestMapping("/update_page/{id}")
public ModelAndView update_page(@PathVariable("id")int id) {ModelAndView view = new ModelAndView("/base/commodity/commodity_update");Commodity model = commodityService.selectByPrimaryKey(id);view.addObject("model",model); // 设置 model 对象数据return view;
}

4.2 jsp 使用示例(导入自定义 taglib)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="el-common" prefix="el" %><!DOCTYPE HTML>
<html>
<head>
<title>自定义 el 函数</title>
</head>
<body><script type="text/javascript">var jsonData = ${el:toJsonString(model)}; // model 为后台设置的对象console.log(jsonData); // 输出 json 对象</script>
</body>
</html>

jsp 将java对象转json对象 (自定义EL函数)相关推荐

  1. SpringBoot将自定义对象转JSON对象问题研究

    SpringBoot JSON序列化自定义对象研究 1. 问题描述 1.1 工程代码 1.2 测试 2. 问题分析 2.1 初步分析结论 2.2 实验验证结论 2.3 问题拓展 3. 结论 摘要(干货 ...

  2. java 视图对象转换,使用spring boot开发时java对象和Json对象转换的问题_JavaScript_网络编程...

    将java对象转换为on对象,市面上有很多第三方jar包,如下: jackson(最常用) com.fasterxml.jackson.core jackson-databind 2.11.2 gso ...

  3. Java对象转换为Json对象

    前言 曾几何时,XML是程序员的宠儿,是数据传输.API.AJAX应用等方面的不二选择,但自从JSON横空出世后,或者你会发觉你身边就有很多人开始抛弃XML,在他们的心目中,JSON已经完全取代了XM ...

  4. java对象和json对象之间互相转换

    2019独角兽企业重金招聘Python工程师标准>>> import java.util.ArrayList; import java.util.Collection; import ...

  5. java对象与json对象间的相互转换的方法

    String json=JSON.toJSONString(user);//关键 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如下. 1 JSON ...

  6. java map转JSON对象

    java map转JSON对象 net.sf.json.JSONObject.fromObject(map)

  7. js中自定义对象、json对象、json字符串、普通js对象 --js学习那本书上的

    4.7 自定义对象 JS除了内置对象之外,还允许我们程序自己定义属于我们自己的对象,在JS中自定义对象的方式有2种:通过构造器创建对象,通过初始化器创建对象. 4.7.1 构造器创建对象(原生JS对象 ...

  8. js中自定义对象、json对象、json字符串、普通js对象

    4.7 自定义对象 JS除了内置对象之外,还允许我们程序自己定义属于我们自己的对象,在JS中自定义对象的方式有2种:通过构造器创建对象,通过初始化器创建对象. 4.7.1 构造器创建对象(原生JS对象 ...

  9. java对象与json对象间的相互转换

    工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如 ...

最新文章

  1. 原生html小游戏,原生JS实现别踩白块小游戏(一)
  2. linux哪个命令可以切换工作目录?如何显示当前所在的目录,Linux cd命令:切换目录...
  3. 【猜画小歌】辅助插件FunnyDraw江湖召集令
  4. python2048小游戏程序设计大作业_C语言大作业报告——2048小游戏程序
  5. 字符串:1.存储结构
  6. jsp篇 之 指令元素和动作元素
  7. eclipse导入源码
  8. layui 读取本地excel内容_Python操作Excel基础(1)
  9. Java 1.1.3 修改字符串、不可变字符串
  10. 第 5 章 输入输出管理
  11. Lyft无人车战略揭秘:两个团队并行,用百度Apollo,想定行业标准
  12. Object.keys()返回对象自身可枚举属性组成的数组
  13. basys3芯片型号xc7a35tcpg236-1
  14. Hbase预分区入门
  15. 双系统安装deepin20_win10安装deepin双系统
  16. 【obs-studio开源项目从入门到放弃】windows 窗口采集和桌面采集的解决方案
  17. AppleStore 原始ipa文件提取
  18. 自定义控件之下拉刷新列表
  19. WIN10无法启动(启动画面转圈卡死)的解决方法
  20. Nature Neuroscience:怀孕导致人类大脑结构的长久改变

热门文章

  1. mysql表设计实例
  2. 《利用Python进行数据分析》笔记记录第六章——数据载入、存储及文件格式
  3. 正则表达式,python正则表达式
  4. ACM/ICPC是什么
  5. 小家电项目硬件方案分析和报价
  6. vue 百度地图点聚合MarkerClusterer,缩放拖拽后label消失
  7. 锐捷校园网自动登录脚本
  8. ddmmyy日期格式是多少_英语中关于年月日以及数字
  9. 求多边形凸包(线性算法)--陈氏凸包算法--
  10. 【厚积薄发系列】读书笔记1—《周一凌晨的领导课》小记