发表于: 2021-11-13 22:46:54

1 887


.今天完成的任务:json taglib 的使用

JSON-taglib是一个JSP 2.0标记库,用于在JSP代码中呈现JSON(JavaScript Object Notation)数据。它可以作为AJAX应用程序的服务器端的一部分,允许您使用JSP的全部功能来格式化您的JSON数据。
标签库建立在由Douglas Crockford编写的Java JSON库上。
JSON指的是的的的的的的JavaScript对象表示法(JavaScript对象表示法
JSON是轻量级的文本数据交换格式
JSON独立于语言以上传上传上传.json使用的的的JavaScript的的语法来描述数据对象,但是JSON仍然独立于语言和平台以上传上传上传上传.json解析器和JSON库支持许多不同的编程语言目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
JSON具有自我描述性,更为理解
JSON是一种轻量级的数据交换格式。它是一种基于文本的,用于表示数据结构的可读格式.JSON是JavaScript对象文字符号的一个子集,广泛用于AJAX Web应用程序。
JSON-标签库被设计为尽可能易于使用。
它只做一件事:在JSP中呈现JSON数据。
它由3个用于定义数据的简单标签组成:JSON:对象,JSON:属性和JSON:阵列。
JSON-的标签库标签的建立
在JSP中包含taglib。只需将json-taglib jar文件放入webapp的WEB-INF / lib目录中,然后在JSP的顶部使用以下taglib声明。
<%@ taglib prefix =“json”uri =“http://www.atg.com/taglibs/json”%>
(1)JSON对象
JSON:对象标签用于创建JSON对象对象可以根据需要多次嵌套上传上传,json对象包含属性,使用上面描述的JSON:属性标签添加。
(2)JSON属性
JSON:属性标记来呈现JSON属性,可以用该属性标签将属性添加到数据,对象或者数组中进行嵌套使用
JSON属性基本上只是名称/值对。
名称就是是一个字符串,可以在标签上设置name =“...”属性。
值通过在标签上设置value =“...”属性。
如果指定的值是一个布尔值,那么它将被转换为一个JSON布尔值
如果指定的值是一个数字(整数,短,长,双,浮点数),那么它将被转换成JSON数值。
如果该值是一个字符串,它将被转换为一个JSON字符串。
任何其他用于设置值的的的的的Java类型都将调用的的的toString()方法,它们将被视为JSON字符串。
(3)JSON数组
JSON:阵列标签用于创建JSON数组上传,json数组可能包含字符串,数值,布尔值,JSON对象或其他JSON数组。
使用items =“...”属性传递值的集合或数组。
集合将被迭代,集合中的每个值都将被添加到JSON数组中。
集合中的项目类型遵循与JSON属性相同的规则,所以整数将成为JSON数字,布尔变成JSON布尔等等。

为什么要使用jsontaglib?

使用JSON-标签库,在控制器中的代码更加简洁,易读

使用JSON-标签库更加灵活,如果以后需要更改JSON数据格式,只需要更改JSP页面即可,不需要改动控制器代码

@RequestMapping( value = "/test2" ,method = RequestMethod.GET)
public String jsonDemo1(Model model) {

model.addAttribute("user",this.user);
   model.addAttribute("student",this.student);
   model.addAttribute("code",-1);
   model.addAttribute("message","Success");
       List<Student> list =new ArrayList<Student>();
       list.add(this.student);
       model.addAttribute("list",list);
       return "json";

}


json.jsp

<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<json:object>
<json:property name="username" value="${user.username}" />
<json:property name="id" value="${user.id}}" />
<json:property name="adress" value="${user.address}"/>
<json:property name="age"   value="${student.age}"/>
</json:object>

返回的结果

{"id":"${user.id}","name":"${user.username}","sex":"${user.sex}","address":"${user.course}","student":{"itemCount":"${cart.itemCount}","subtotal":"${cart.subtotal}","items":[{"title":"${item.title}","description":"${item.description}","imageUrl":"${item.imageUrl}","price":"${item.price}","qty":"${item.qty}"}]}}


遇到的问题是:

页面不显示user中的对象 问题还在解决中



返回列表 返回列表
评论

    分享到