springMVC自定义El表达式,将对象变成json串

本文介绍了如何在SpringMVC中自定义EL表达式,通过创建转换类、定义.tld文件并配置web.xml,将页面上的对象转换为JSON字符串。在页面上,可以使用${el:toJsonString(obj)}来实现对象的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建转换的类

这个类作用只是为了将对象转换成json串

import com.alibaba.fastjson.JSON;

public class ElCommons{

	/**
	 * 将对象中存在值的字段转换成为json串
	 * @param obj
	 * @return
	 */
    public static String toJsonString(Object obj){
        // 将java对象转换为json对象
    	String jsonString = JSON.toJSONString(obj); 
        return jsonString;
    }
}

创建.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.gss.manage.taglib.ElCommons</function-class>
        <function-signature>String toJsonString(java.lang.Object)</function-signature>

        <description>将对象format成json字符串</description>
        <example>${el:toJsonString(value)}</example>
    </function>
</taglib>

引入web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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-app_3_0.xsd" version="3.0">
    <jsp-config>  
        <taglib>  
            <!-- 配置标签的引用地址 JSP页面中引用时使用-->  
            <taglib-uri>el-common</taglib-uri>  
            <!-- 配置标签的TLD文件地址 -->  
            <taglib-location>/WEB-INF/el-common.tld</taglib-location>  
        </taglib>  
    </jsp-config>
    ....

页面使用

在头部声明自定义el表达式并且使用${el:toJsonString(obj)}进行转换

<%@ taglib uri="el-common" prefix="el" %>

${el:toJsonString(item)}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值