自定义EL表达式,将对象转成json格式,关键代码

做javaweb开发的最常用的一个东西el表达式,这个东西是个很好用的东西,但有些时候我们处理复杂的字符串操作,就有些相形见绌了,这个时候就需要用自定义的方法去实现更多简洁方便的事情。

下面自定义一个将对象转成json字符串的自定义el表达式用来讲解这个自定义的过程:

ElFunctions.java

import net.sf.json.JSONObject;
public class ElFunctions{

    public static String toJsonString(Object obj){
        // 将java对象转换为json对象
        JSONObject json = JSONObject.fromObject(obj);
        String str = json.toString();
        return str;
    }
}

mobai-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.mobai.taglib.functions.ElFunctions</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 version="2.5" 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_2_5.xsd">
    <jsp-config>
        <taglib>
            <!-- 配置标签的引用地址 JSP页面中引用时使用-->
            <taglib-uri>mobai.com/el-common</taglib-uri>
            <!-- 配置标签的TLD文件地址 -->
            <taglib-location>/WEB-INF/mobai-el-common.tld</taglib-location>
        </taglib>
    </jsp-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

index.jsp

<%@ taglib uri="mobai.com/el-common" prefix="el" %>
<body>
    ${el:toJsonString(user)}
</body>  

以上大概就是该功能的关键代码了,这里只列举了一个转换json字符串的方法,其他的大家可以根据需要去自定义各种各样的方法来用。

时间: 2024-10-13 02:51:10

自定义EL表达式,将对象转成json格式,关键代码的相关文章

C#自定义将各种对象转换成JSON格式的类

这个C#封装类可以用于将各种格式的数据转换成JSON格式,包括List转换成Json,普通集合转换Json ,DataSet转换为Json ,Datatable转换为Json ,DataReader转换为Json等,如果你需要将对象转换成JSON,可以使用这个类. using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Reflection; using

Map对象转换成Json格式的String字符串

1 //action处理页面发来的String,put到map转换成Json格式的String字符串 2 @RequestMapping("/seleteOaOrder") 3 @ResponseBody 4 public Object seleteOaOrder(String param){//param = "小明"; 5 System.out.println("+++++++++++++++++param:"+param); 6 if(pa

Gson把对象转成json格式的字符串

最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库. 发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson. 经过比较,gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段. 下面是一个简单的例子:

SpringMVC 中List 对象转换成Json格式 List对象中属性为NUll解决

问题起因:今天在做一个EasyUI 同步树的时候,在SpringMVC中用 @ResponseBody标签将List<tree> 集合转换成Json数据的时候,出现一些原因. 问题描述:1.tree对象有个List<tree>属性需要为空,这个是做树用的,下级没值当然不能有null了 代码: [{"id":1,"text":"权限管理 ","state":"closed  ",&qu

C#中的DataSet、string、DataTable、对象转换成Json的实现代码

C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// <summary> /// 过滤特殊字符 /// </summary> /// <param name="s">字符串</param> /// <returns>json字符串</returns> private s

把普通对象转换成json格式的对象

1.什么叫做JSON?JSON只是一种数据格式(它不是一种新的数据类型) var obj = {name: "中国", age: 5000};//->普通格式的对象 var jsonObj = {"name": "中国", "age": 5000};//->JSON格式的对象 (只要把普通对象的属性名用""(不能是'')包起来,这样的格式就是我们JSON格式的对象) var data = [ {

spring-boot-framework 如何自动将对象返回成json格式

使用srping-rest-mvc 的时候只要在工程的classpath中包含jackson的2.x版本,就可以不用自己做json格式的转换了. 如在你的pom文件中加入以下的依赖: <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.5.4

Javascript-自定义对象转换成JSon后如何再转换回自定义对象

man是自定义的对象,使用var tim = JSON.stringify(man); var newman=JSON.parse(tim)后newman的类型是"object"并不是一个Man,怎么才能变回一个Man呢? function Man() { this._type = "man"; this.name=""; this.run = function () { alert("run!!"); alert(this.

EL表达式获取对象属性的原理

EL表达式获取对象属性的原理是这样的:以表达式${user.name}为例EL表达式会根据name去User类里寻找这个name的get方法,此时会自动把name首字母大写并加上get前缀,一旦找到与之匹配的方法,El表达式就会认为这就是要访问的属性,并返回属性的值. 所以,想要通过EL表达式获取对象属性的值,那么这个属性就必须有与之对应的get方法. 其实你要了解EL表达式的运行原理,它其实后台也对应的Java代码,它会先将你EL表达式中的对象属性的首字符大写,拼成getXX()方法,然后利用