java对象转js对象

来源:互联网 发布:农村淘宝怎么买东西 编辑:程序博客网 时间:2024/06/05 16:08


在js中直接使用 EL表达式表达java对象时,输出是对象的类名。


没有达到我们要使用该对象的目的。


比如

var user= ${user};


在页面上查询代码为


var user=com.test.domain.user;


这时候想要获取user的属性值: user.name是会报错的。


我们只有把java对象转换为js对象才能通过 user.name获取user的属性值。


我们一般把java对象转化为js中的json对象。


我们这里还是需要使用jsp中的自定义标签。在java语言中把java对象转化成json对象后返回给js。


如果不了解 jsp的自定义标签可以参考:

jsp自定义标签-----EL表达式中连接两个字符串


我这里直接记录自定义标签实现的代码。


cf.tld

<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 functions library</description>    <display-name>JSTL functions</display-name>    <tlib-version>1.1</tlib-version>    <short-name>cf</short-name>    <uri>com.data.web.view.function</uri>    <function>        <description>对象序列化为json字符串</description>        <name>toJSON</name>        <function-class>com.data.util.JSON</function-class>        <function-signature>java.lang.String toJSON(java.lang.Object)</function-signature>    </function>           </taglib>


JSON.java

package com.data.util;import java.io.IOException;import java.util.Map;import com.data.web.support.spring.web.JsonObjectMapper;import com.fasterxml.jackson.core.JsonGenerationException;import com.fasterxml.jackson.core.JsonParseException;import com.fasterxml.jackson.databind.JsonMappingException;import com.fasterxml.jackson.databind.ObjectMapper;/** * JSON 序列化和反序列化 *  *  */public abstract class JSON {    private static final ObjectMapper objectMapper = new JsonObjectMapper();         /**     * 对象JSON序列化     *      * @param object     * @return     * @throws JsonGenerationException     * @throws JsonMappingException     * @throws IOException     */    public static String toJSON(Object object) {        try {            return objectMapper.writeValueAsString(object);        } catch (Exception e) {            return null;        }    }}



jsp中使用

头部需要引用

<%@ taglib uri="com.data.web.view.function" prefix="cf" %>


js中使用如下:

var user=${cf:toJSON(user)};




0 0
原创粉丝点击