當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSON与Struts2的结合使用
生活随笔
收集整理的這篇文章主要介紹了
JSON与Struts2的结合使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、首先導入struts的必須包
2、導入struts整合JSON的必須包
3、配置核心過濾器
4、編寫AJAX并在其中使用json <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib? uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> ? <head> ??? <title>title</title> ??? ??????????<meta http-equiv="pragma" content="no-cache"> ??????????<meta http-equiv="cache-control" content="no-cache"> ??????????<meta http-equiv="expires" content="0"> ??????????<script type="text/javascript"> ???????????????????window.onload = function (){ ?????????????????????????????//創建AJAX對象 ?????????????????????????????var ajax; ?????????????????????????????try{ ??????????????????????????????????????ajax = new XMLHttpRequest(); ?????????????????????????????}catch(e){ ??????????????????????????????????????ajax = new ActiveXObject("microsoft.xmlhttp"); ?????????????????????????????} ????????????????????????????? ?????????????????????????????ajax.open("get","<c:url value='/json_list'/>" ); ?????????????????????????????ajax.send(null); ????????????????????????????? ?????????????????????????????var province = document.getElementById("provinceID"); ????????????????????????????? ?????????????????????????????//接收返回狀態 ?????????????????????????????ajax.onreadystatechange = function(){ ??????????????????????????????????????if(ajax.readyState==4 && ajax.status==200){ ????????????????????????????????????????????????var props = ajax.responseText; ????????????????????????????????????????????????//將json的字符串轉為對象 ????????????????????????????????????????????????props = eval("("+props+")"); ???????????????????????????????????????????????? ????????????????????????????????????????????????for(var i=0;i<props.length;i++){ ??????????????????????????????????????????????????????????var opt = document.createElement("option"); ??????????????????????????????????????????????????????????//使用json獲取指定值 ??????????????????????????????????????????????????????????opt.setAttribute("value", props[i].id); ??????????????????????????????????????????????????????????opt.innerHTML = props[i].provinceName; ??????????????????????????????????????????????????????????province.appendChild(opt); ????????????????????????????????????????????????} ??????????????????????????????????????} ????????????????????????????? ?????????????????????????????} ???????????????????} ??????????</script> ? </head> ? ? <body> ??? <select id="provinceID"> ??? ?????? ??? </select> ? </body> </html>
5、編寫一個實體類 public class Province { ??????????private int id; ??????????private String provinceName;
6、編寫一個Action package star.july.web; import java.util.ArrayList; import java.util.List; import star.july.entity.Province; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class ProvinceAction extends ActionSupport{ ??????????????????? ??????????public String list(){ ???????????????????List<Province> list = new ArrayList<Province>(); ???????????????????list.add(new Province(1,"張三")); ???????????????????list.add(new Province(2,"李四")); ???????????????????list.add(new Province(3,"王五")); ??????????????????? ???????????????????ActionContext ac = ActionContext.getContext(); ???????????????????ac.put("list", list); ??????????????????? ???????????????????return SUCCESS; ??????????} }
7、配置struts.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts PUBLIC ??????????"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" ??????????"http://struts.apache.org/dtds/struts-2.3.dtd"> ????????? <struts> ??????????<!-- 繼承一個struts整合json的json-defalut包,其已經繼承了默認的struts-defalut --> ??????????<package name="default" extends="json-default" namespace="/"> ???????????????????<action name="json_*" class="star.july.web.ProvinceAction" method="{1}"> ?????????????????????????????<!-- 返回視圖的類型必須是:json --> ?????????????????????????????<result type="json"> ??????????????????????????????????????<!-- 值必須是root,轉換Action類中放入映射棧的對象,一次只能轉換一個 --> ??????????????????????????????????????<param name="root">#list</param> ?????????????????????????????</result> ???????????????????</action> ??????????</package> </struts>
2、導入struts整合JSON的必須包
3、配置核心過濾器
4、編寫AJAX并在其中使用json <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib? uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> ? <head> ??? <title>title</title> ??? ??????????<meta http-equiv="pragma" content="no-cache"> ??????????<meta http-equiv="cache-control" content="no-cache"> ??????????<meta http-equiv="expires" content="0"> ??????????<script type="text/javascript"> ???????????????????window.onload = function (){ ?????????????????????????????//創建AJAX對象 ?????????????????????????????var ajax; ?????????????????????????????try{ ??????????????????????????????????????ajax = new XMLHttpRequest(); ?????????????????????????????}catch(e){ ??????????????????????????????????????ajax = new ActiveXObject("microsoft.xmlhttp"); ?????????????????????????????} ????????????????????????????? ?????????????????????????????ajax.open("get","<c:url value='/json_list'/>" ); ?????????????????????????????ajax.send(null); ????????????????????????????? ?????????????????????????????var province = document.getElementById("provinceID"); ????????????????????????????? ?????????????????????????????//接收返回狀態 ?????????????????????????????ajax.onreadystatechange = function(){ ??????????????????????????????????????if(ajax.readyState==4 && ajax.status==200){ ????????????????????????????????????????????????var props = ajax.responseText; ????????????????????????????????????????????????//將json的字符串轉為對象 ????????????????????????????????????????????????props = eval("("+props+")"); ???????????????????????????????????????????????? ????????????????????????????????????????????????for(var i=0;i<props.length;i++){ ??????????????????????????????????????????????????????????var opt = document.createElement("option"); ??????????????????????????????????????????????????????????//使用json獲取指定值 ??????????????????????????????????????????????????????????opt.setAttribute("value", props[i].id); ??????????????????????????????????????????????????????????opt.innerHTML = props[i].provinceName; ??????????????????????????????????????????????????????????province.appendChild(opt); ????????????????????????????????????????????????} ??????????????????????????????????????} ????????????????????????????? ?????????????????????????????} ???????????????????} ??????????</script> ? </head> ? ? <body> ??? <select id="provinceID"> ??? ?????? ??? </select> ? </body> </html>
5、編寫一個實體類 public class Province { ??????????private int id; ??????????private String provinceName;
6、編寫一個Action package star.july.web; import java.util.ArrayList; import java.util.List; import star.july.entity.Province; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class ProvinceAction extends ActionSupport{ ??????????????????? ??????????public String list(){ ???????????????????List<Province> list = new ArrayList<Province>(); ???????????????????list.add(new Province(1,"張三")); ???????????????????list.add(new Province(2,"李四")); ???????????????????list.add(new Province(3,"王五")); ??????????????????? ???????????????????ActionContext ac = ActionContext.getContext(); ???????????????????ac.put("list", list); ??????????????????? ???????????????????return SUCCESS; ??????????} }
7、配置struts.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts PUBLIC ??????????"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" ??????????"http://struts.apache.org/dtds/struts-2.3.dtd"> ????????? <struts> ??????????<!-- 繼承一個struts整合json的json-defalut包,其已經繼承了默認的struts-defalut --> ??????????<package name="default" extends="json-default" namespace="/"> ???????????????????<action name="json_*" class="star.july.web.ProvinceAction" method="{1}"> ?????????????????????????????<!-- 返回視圖的類型必須是:json --> ?????????????????????????????<result type="json"> ??????????????????????????????????????<!-- 值必須是root,轉換Action類中放入映射棧的對象,一次只能轉換一個 --> ??????????????????????????????????????<param name="root">#list</param> ?????????????????????????????</result> ???????????????????</action> ??????????</package> </struts>
總結
以上是生活随笔為你收集整理的JSON与Struts2的结合使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AJAX的异步请求小例子
- 下一篇: 一个简单的jQuery例子,动态添加表格