struts2:JSON在struts中的应用(JSP页面中将对象转换为JSON字符串提交、JSP页面中获取后台Response返回的JSON对象)详解编程语言
2023-06-13 09:20:23 时间
由JSON格式字符串创建,转换成JavaScript的Object对象;
由JSON格式字符串创建,转换成JavaScript的List或数组链表对象。
更多关于JSON的信息,请参考:JSON概述及其在JavaScript与Java中的应用(整理)
1. JSP页面中将对象转换为JSON字符串提交 1.1 创建JSP文件(convertObject2Json.jsp)%@ page language="java" import="java.util.*" pageEncoding="utf-8" % !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" html head meta http-equiv="Content-Type" content="text/html; charset=utf-8" script type="text/javascript" src="../../js/json2.js" /script script type="text/javascript" function ajaxTransferText(){ var BigText = document.getElementById("BigText").value; var ajaxTransferObjectRef = new ajaxTransferObject("张三", "密码11", 10, BigText); var JSONString = JSON.stringify(ajaxTransferObjectRef); if (window.ActiveXObject) { myAjaxObject = new ActiveXObject("Microsoft.XMLHTTP"); else { myAjaxObject = new XMLHttpRequest(); var urlString = "jsonString=" + JSONString; alert(urlString); myAjaxObject.open("POST", "postJson.action"+"?timestamp=" + new Date().getTime(), true); myAjaxObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); myAjaxObject.send(urlString); function ajaxTransferObject(username, password, age, BigText){ this.username = username; this.password = password; this.age = age; this.BigText = BigText; /script /head body textarea name="textarea" id="BigText" cols="45" rows="5" 需要提交的信息主体... /textarea br/ input type="button" value="提交试试" onclick="ajaxTransferText()"/ /body /html1.2 创建后台处理Action类
package com.clzhang.ssh.demo6; import net.sf.json.JSONObject; import com.opensymphony.xwork2.ActionSupport; * 获取前台提交的JSON数据 * @author Administrator public class PostJSONAction extends ActionSupport { public static final long serialVersionUID = 1; private String jsonString; public String getJsonString() { return jsonString; public void setJsonString(String jsonString) { this.jsonString = jsonString; public String execute() { System.out.println(jsonString); JSONObject json = JSONObject.fromObject(jsonString); System.out.println("username=" + json.get("username")); System.out.println("username=" + json.get("password")); System.out.println("username=" + json.get("age")); System.out.println("username=" + json.get("BigText")); return null; }1.3 修改配置文件struts.xml
action name="postJson" /action1.4 测试
打开IE,输入地址:http://127.0.0.1:8080/st/ssh/demo6/convertObject2Json.jsp
结果如下:
确定后,后台显示:
2. JSP页面获取后台Response返回的JSON对象 2.1 创建JSP文件(getJsonFromResp.jsp)%@ page language="java" import="java.util.*" pageEncoding="utf-8" % !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" html head meta http-equiv="Content-Type" content="text/html; charset=utf-8" script type="text/javascript" src="../../js/json2.js" /script script type="text/javascript" var myAjaxObject; //在List中存字符串 function getListString(){ if (window.ActiveXObject) { myAjaxObject = new ActiveXObject("Microsoft.XMLHTTP"); else { myAjaxObject = new XMLHttpRequest(); myAjaxObject.open("GET", "getJson!listString.action?date=" + new Date().getTime(), true); myAjaxObject.onreadystatechange = retrunListString; myAjaxObject.send(); function retrunListString(){ if (myAjaxObject.readyState == 4) { if (myAjaxObject.status == 200) { var returnJSONString = myAjaxObject.responseText; var returnJSON = JSON.parse(returnJSONString); var showString = ""; for (var i = 0; i returnJSON.length; i++) { showString = showString + returnJSON[i] + " "; alert(showString); //在List中存Bean function getListBean(){ if (window.ActiveXObject) { myAjaxObject = new ActiveXObject("Microsoft.XMLHTTP"); else { myAjaxObject = new XMLHttpRequest(); myAjaxObject.open("GET", "getJson!listBean.action?date=" + new Date().getTime(), true); myAjaxObject.onreadystatechange = retrunListBean; myAjaxObject.send(); function retrunListBean(){ if (myAjaxObject.readyState == 4) { if (myAjaxObject.status == 200) { var returnJSONString = myAjaxObject.responseText; var returnJSON = JSON.parse(returnJSONString); var showString = ""; for (var i = 0; i returnJSON.length; i++) { showString = showString + returnJSON[i].username + " " + returnJSON[i].password + " " + returnJSON[i].age + " " + returnJSON[i].createDate + "/n"; alert(showString); //在Map中存字符串 function getMapString(){ if (window.ActiveXObject) { myAjaxObject = new ActiveXObject("Microsoft.XMLHTTP"); else { myAjaxObject = new XMLHttpRequest(); myAjaxObject.open("GET", "getJson!mapString.action?date=" + new Date().getTime(), true); myAjaxObject.onreadystatechange = retrunMapString; myAjaxObject.send(); function retrunMapString(){ if (myAjaxObject.readyState == 4) { if (myAjaxObject.status == 200) { var returnJSONString = myAjaxObject.responseText; var returnJSON = JSON.parse(returnJSONString); var showString = ""; for (var i in returnJSON[0]) { showString = showString + "key=" + i + " value=" + returnJSON[0][i] + "/n"; alert(showString); //在Map中存Bean function getMapBean(){ if (window.ActiveXObject) { myAjaxObject = new ActiveXObject("Microsoft.XMLHTTP"); else { myAjaxObject = new XMLHttpRequest(); myAjaxObject.open("GET", "getJson!mapBean.action?date=" + new Date().getTime(), true); myAjaxObject.onreadystatechange = retrunMapBean; myAjaxObject.send(); function retrunMapBean(){ if (myAjaxObject.readyState == 4) { if (myAjaxObject.status == 200) { var returnJSONString = myAjaxObject.responseText; var returnJSON = JSON.parse(returnJSONString); var showString = ""; for (var i in returnJSON[0]) { showString = showString + "key=" + i + " username=" + returnJSON[0][i].username + " password=" + returnJSON[0][i].password + " age=" + returnJSON[0][i].age + " createDate=" + returnJSON[0][i].createDate + "/n"; alert(showString); /script /head body input type="button" value="返回List中存String类型的JSON" onclick="getListString()"/ br/ br/ input type="button" value="返回List中存Bean类型的JSON" onclick="getListBean()"/ br/ br/ input type="button" value="返回Map中存String类型的JSON" onclick="getMapString()"/ br/ br/ input type="button" value="返回Map中存Bean类型的JSON" onclick="getMapBean()"/ br/ /body /html
2.2 创建后台处理Action类
package com.clzhang.ssh.demo6; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; import net.sf.json.JSONArray; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; * 返回给前台JSON数据,以四种方式 * @author Administrator public class ReturnJSONAction extends ActionSupport { public static final long serialVersionUID = 1; private List String lstString = new ArrayList String (); public ReturnJSONAction() { lstString.add("你今天吃了吗?"); lstString.add("吃了多吃点"); lstString.add("没吃回家吃去"); lstString.add("好好学习"); lstString.add("天天向上"); public String listString() throws IOException { JSONArray json = JSONArray.fromObject(lstString); System.out.println(json.toString()); ServletActionContext.getResponse().setContentType("text/html"); ServletActionContext.getResponse().setCharacterEncoding("utf-8"); ServletActionContext.getResponse().getWriter().printf(json.toString()); ServletActionContext.getResponse().getWriter().flush(); ServletActionContext.getResponse().getWriter().close(); return null; public String listBean() throws IOException { List UserInfo listBean = new ArrayList UserInfo (); for(String str: lstString) { UserInfo userInfo1 = new UserInfo(); userInfo1.setUsername(str); userInfo1.setPassword("P" + Math.random()); userInfo1.setAge((int)(Math.random()*10)); userInfo1.setCreateDate(new SimpleDateFormat("yyyy-MM-dd hh-mm-ss") .format(new Date())); listBean.add(userInfo1); JSONArray json = JSONArray.fromObject(listBean); System.out.println(json.toString()); ServletActionContext.getResponse().setContentType("text/html"); ServletActionContext.getResponse().setCharacterEncoding("utf-8"); ServletActionContext.getResponse().getWriter().printf(json.toString()); ServletActionContext.getResponse().getWriter().flush(); ServletActionContext.getResponse().getWriter().close(); return null; public String mapString() throws Exception { LinkedHashMap String, String mapString = new LinkedHashMap String, String (); int count = 1; for(String str: lstString) { mapString.put(""+count++, str+count); JSONArray json = JSONArray.fromObject(mapString); System.out.println(json.toString()); ServletActionContext.getResponse().setContentType("text/html"); ServletActionContext.getResponse().setCharacterEncoding("utf-8"); ServletActionContext.getResponse().getWriter().printf(json.toString()); ServletActionContext.getResponse().getWriter().flush(); ServletActionContext.getResponse().getWriter().close(); return null; public String mapBean() throws Exception { LinkedHashMap String, UserInfo mapString = new LinkedHashMap String, UserInfo (); int count = 1; for(String str: lstString) { UserInfo userInfo1 = new UserInfo(); userInfo1.setUsername(str); userInfo1.setPassword("P" + Math.random()); userInfo1.setAge((int)(Math.random()*10)); userInfo1.setCreateDate(new SimpleDateFormat("yyyy-MM-dd hh-mm-ss") .format(new Date())); mapString.put(""+count++, userInfo1); JSONArray json = JSONArray.fromObject(mapString); System.out.println(json.toString()); ServletActionContext.getResponse().setContentType("text/html"); ServletActionContext.getResponse().setCharacterEncoding("utf-8"); ServletActionContext.getResponse().getWriter().printf(json.toString()); ServletActionContext.getResponse().getWriter().flush(); ServletActionContext.getResponse().getWriter().close(); return null; public String execute() throws IOException { return null; }
2.3 修改配置文件struts.xml
action name="getJson" /action2.4 测试
打开IE,输入地址:http://127.0.0.1:8080/st/ssh/demo6/getJsonFromResp.jsp
2.4.1 按下“返回List中存String类型的JSON”按钮 2.4.2 按下“返回List中存Bean类型的JSON”按钮 2.4.3 按下“返回Map中存String类型的JSON”按钮 2.4.4 按下“返回Map中存Bean类型的JSON”按钮原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7969.html
cjavaxml相关文章
- jsp 九大内置对象和四大域对象
- JSP九大内置对象及四个作用域详解编程语言
- 利用JSP实现从MySQL中读取数据的简单操作(jsp显示mysql数据)
- 使用JSP连接MySQL数据库的简单步骤(jsp连接mysql数据库)
- JSP application.getAttribute()方法:获取属性值
- JSP jsp:include:页面包含标签
- JSP Response.isNew()方法:判断当前用户是否为新用户
- 用JSP实现MySQL数据库的注册功能(jsp注册mysql)
- JSP实现Oracle数据库连接(jsp连接oracle)
- 使用JSP快速连接Oracle数据库(jsp与oracle连接)
- 使用JSP与MySQL实现数据库连接(jsp和mysql连接)
- JSP连接MySQL实现登录功能(jsp登录mysql)
- 快速掌握JSP连接MySQL的方法(jsp怎么连接mysql)
- 使用JSP访问MySQL数据库(jsp访问mysql)
- JSP与MongoDB的完美结合(jspmongodb)
- 使用MySQL管理图片在JSP页面上展示的技巧(mysql图片jsp)
- 使用JSP连接Oracle数据库的技术实现(jsp 连oracle)
- JSP实现Oracle数据库调用技术(jsp 调用oracle)
- 数据库JSP实现对Oracle数据库的访问(jsp访问oracle)
- 使用JSP与Oracle数据库建立连接(jsp和oracle连接)
- 使用JSP和Oracle进行数据库应用开发(jsp加oracle)
- 一、Servlet和JSP概述
- 如何在Jsp中使用JDBC来联结MySql
- 通用JSP页面jsp入门级文章
- JSP点击链接后下载文件(相当于右键另存)功能
- JSP输出HTML时产生的大量空格和换行的去除方法
- Servlet与JSP间的两种传值情况
- jsp中页面之间的跳转forward与sendRedirect的区别
- Java从服务器上获取时间动态显示在jsp页面实现思路
- jsp页面中窗口关闭,退出的方式分享
- jsp中ajax的get请求的中文乱码问题的解决方法
- jsp中将后台传递过来的json格式的list数据绑定到下拉菜单select
- jsp跳转getRequestDispatcher()和sendRedirect()的区别