SSM项目开发日记03-利用JSP自定义标签来实现JSTL转JSON对象
>>>2021-07-13
出于需求,要在页面获取JSTL标签获取到的对象转成JSON对象操作。
参考文章如下:
接下来直接记录代码
1.新建并编辑xf.tdl,在IDEA中的位置如下
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>custom JSTL 1.1 function library</description>
<display-name>JSTL</display-name>
<tlib-version>1.1</tlib-version>
<short-name>xf</short-name>
<uri>com.data.web.view.function</uri>
<function>
<description>对象序列化为json字符串</description>
<name>toJSON</name>
<!-- 下面这里对应java类的路径,名称 -->
<function-class>com.wilk.utils.JSONTool</function-class>
<!-- 依次对应返回类型,方法名和参数类型 -->
<function-signature>java.lang.String toJSON(java.lang.Object)</function-signature>
</function>
</taglib>
2.新建JSONTool类,并写出toJSON方法,注意类和方法的修饰符
package com.wilk.utils;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* @author :WILK
* @ClassName JSONTool
* @date 2021/7/13 14:19
* @Version 1.0
* @apiNote :
*/
public abstract class JSONTool {
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
public static String toJSON(Object obj) {
try {
return OBJECT_MAPPER.writeValueAsString(obj);
} catch (Exception e) {
return null;
}
}
}
3.在前端页面使用,使用前先引用
<%@taglib uri="com.data.web.view.function" prefix="xf" %>
然后在js中使用即可
var u=${xf:toJSON(cUser)};
也可存入sessionStorage中,对比查看一下,代码如下:
function setSession(sessionStr, setObj) {
sessionStorage.removeItem(sessionStr);
window.sessionStorage.setItem(sessionStr, JSON.stringify(setObj));
}
var cUser = "${cUser}";
var u=${xf:toJSON(cUser)};
function setUser2Session() {
setSession("cUser", cUser);
setSession("u", u);
}
$(document).ready(function () {
setUser2Session();
});
运行后进入页面并按F12,查看
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-grjDZBPU-1626175562530)(C:\Users\19771\AppData\Roaming\Typora\typora-user-images\image-20210713192324770.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jLy3NEW2-1626175562532)(C:\Users\19771\AppData\Roaming\Typora\typora-user-images\image-20210713192344514.png)]
运行后进入页面并按F12,查看