Struts2 + Json + Jstl 节选自 《Netkiller Java 手札》
2023-09-14 08:59:51 时间
Struts 配置文件
package name="information" extends="main" namespace="/inf" action name="Information" result type="tiles" information /result /action /package
Action 文件
package cn.netkiller.action; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StringReader; import java.net.URL; import java.net.URLConnection; import java.nio.charset.Charset; import javax.json.Json; import javax.json.JsonObject; import javax.json.JsonReader; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionSupport; public class Infomation extends ActionSupport{ private static final long serialVersionUID = 1L;
String URL = "http://www.example.com/list/json/93/20/0.html"; System.out.printf("%s Requeted URL is %s", this.getClass().getName(), URL); StringBuilder sb = new StringBuilder(); URLConnection urlConn = null; InputStreamReader in = null; try { URL url = new URL(URL); urlConn = url.openConnection(); if (urlConn != null) urlConn.setReadTimeout(60 * 1000); if (urlConn != null urlConn.getInputStream() != null) { in = new InputStreamReader(urlConn.getInputStream(), Charset.defaultCharset()); BufferedReader bufferedReader = new BufferedReader(in); if (bufferedReader != null) { int cp; while ((cp = bufferedReader.read()) != -1) { sb.append((char) cp); bufferedReader.close(); in.close(); jsonString = sb.toString(); System.out.println(jsonString); JsonReader reader = Json.createReader(new StringReader(jsonString)); JsonObject jsonObject = reader.readObject(); this.setJsonObject(jsonObject); reader.close(); // System.out.println(jsonObject.size()); /*for (int i = 0; i jsonObject.size() - 2; i++) { JsonObject rowObject = jsonObject.getJsonObject(Integer.toString(i)); // System.out.println(rowObject.toString()); System.out.printf("%s\t%s\t%s\n", rowObject.getJsonString("id"), rowObject.getJsonString("title"), rowObject.getJsonString("ctime"));
} catch (Exception e) { throw new RuntimeException("Exception while calling URL:" + URL, e); return Action.SUCCESS; public JsonObject getJsonObject() { return jsonObject; public void setJsonObject(JsonObject jsonObject) { this.jsonObject = jsonObject; public String getJsonString() { return jsonString; public void setJsonString(String jsonString) { this.jsonString = jsonString; }
JSP 文件
%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"% %@ taglib prefix="s" uri="/struts-tags"% %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"% table c:forEach items="${jsonObject.entrySet()}" var="json" varStatus="status" c:if test="${not status.last}" td ${json.key+1} /td td ${json.value.getJsonString("id")} /td td ${json.value.getJsonString("title")} /td td ${json.value.getJsonString("ctime")} /td /tr /c:if /c:forEach /table =================== c:forEach items="${jsonObject.entrySet()}" var="json" ${json.value.toString()} /c:forEach =========== s:property value="jsonString" /
解决双引号问题
%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"% %@ taglib prefix="s" uri="/struts-tags"% %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"% %@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"% table c:forEach items="${jsonObject.entrySet()}" var="json" varStatus="status" c:if test="${not status.last}" c:set var="id" value="${fn:replace(json.value.getJsonString(id),\", )}" / c:set var="title" value="${fn:replace(json.value.getJsonString(title),\", )}" / c:set var="ctime" value="${fn:replace(json.value.getJsonString(ctime),\", )}" / td c:out value="${status.count}" / /td td a href="/inf/Detail.do?id= c:out value="${id}"/ " c:out value="${title}" / /a /td td c:out value="${ctime}" / /td /tr /c:if /c:forEach /table c:set var="pages" value="${jsonObject.getJsonObject(pages)}" /
java中好用的list转json的工具hutool 最近做服务器接口开发的时候遇到的小问题,数据库查询之后的数据怎样快捷的转化为json数据,第一时间想到了查库,查了挺久的,好多都是用代码实现,比较懒,这方面内容代码实现的偏多,虽然确实比较简单,但能快点就快点
netkiller Nickname:netkiller | English name: Neo chen | QQ: 291379 | 订阅号:netkiller-ebook | 网站:http://www.netkiller.cn
相关文章
- java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」
- java map转json字符_Map转JSON字符串
- java 登录 qq_Java实现QQ登录
- Java多态性:Java什么是多态?
- java语言的平台无关性是指什么,《深入Java虚拟机》学习笔记二:平台无关性
- java struts2 漏洞_struts2漏洞原理及解决办法
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- 【说站】java动态代理的特点
- java 反射getmethod_Java 反射机制中 getMethod()和getDeclaredField()区别
- Java遍历json_java处理json数据
- java——数组的拷贝
- java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换
- java list 转json 字符串_Java之JSON字符串与List集合之间相互转换
- java 异或加密_Java异或技操作给任意的文件加密原理及使用详解
- 视频教程-Java大数据培训视频全套教程-SVN教程(33)-Java[通俗易懂]
- Java强制类型转换异常
- Java自带的性能监测工具之jhat
- 怎么在vscode里写java
- Java 线程池框架核心代码分析详解编程语言
- Java数据结构和算法(六)——前缀、中缀、后缀表达式详解编程语言
- Java中Queue的使用详解编程语言
- 在java中生成和解析JSON详解编程语言
- 数据如何使用Java读取MySQL数据(java读取mysql)
- 删除Linux中的Java程序(linux删除java)
- Linux 优雅解析JSON文件(linux解析json)
- 使用Java设置Redis密码(redis密码java)
- Java驾驭MySQL,读写如飞(java读写mysql)
- 实现基于Redis的分布式锁Java实现(redis锁java代码)
- 打印json对象的内容及JSON.stringify函数应用
- java操作oracle数据库示例
- jQuery.parseJSON(json)将JSON字符串转换成js对象
- JS遍历Json字符串中键值对先转成JSON对象再遍历