struts中使用json

来源:互联网 发布:淘宝代购加盟 编辑:程序博客网 时间:2024/05/16 02:06

struts中使用json的路程为前台发出请求后台从数据库中查询出数据然后转化为json字符串,前台页面中解析json字符串从而完成一个请求。下边就按照这个逻辑来示例json的基础使用。

1、前台jsp界面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><script src="js/jquery-1.8.3.min.js"></script><script>$.post("homePagePictureAction" ,  {"page" : "001","position" : "00101" }, // 指定回调函数function(data){     var array = data.picture;<span style="color:#ff0000;">var json1=eval("("+array+")");</span>$("<img class='para' />").attr("src", json1[0].path).appendTo("#show");$("#show").append("--------as121312df-----------"+typeof(json1[0].alt) + "----"+ json1[0].alt);},// 指定服务器响应为JSON数据"json");</script></head><body><button>向页面发送 HTTP POST 请求,并获得返回的结果</button><div id="show"></div></body></html>
2、后台action

/** *  */package com.artpri.action;import java.util.List;import org.apache.struts2.json.annotations.JSON;import com.opensymphony.xwork2.Action;/** * 从数据库中取到首页图片相关信息 * @author 王校兵 * @version 1.0, 2016-2-28 */public class HomePagePictureAction extends BaseAction{private String page;private String position;/** * 经查询返回数据库中指定页面指定位置的的图片的信息 * */private String picture;/** * 处理从数据库中取到图片相关信息的逻辑跳转 * @return 跳转页面所对应的代码 */public String execute(){picture = getHomePagePictureService().getHomePagePicture(page, position);return Action.SUCCESS;}public List getHomePagepicture() {return homePagepicture;}public String getPicture() {return picture;}public void setHomePagepicture(List homePagepicture) {this.homePagepicture = homePagepicture;}public void setPage(String page) {this.page = page;}public void setPicture(String picture) {this.picture = picture;}public void setPosition(String position) {this.position = position;}}
2、Service层
<pre name="code" class="java">/** *  */package com.artpri.service.impl;import java.util.List;<span style="color:#ff0000;">import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;</span>import com.artpri.service.HomePagePictureService;import com.artpri.util.JsonTools;/** * 继承自HomePagePictureService并且实现其中的方法 * @author 王校兵 * */public class HomePagePictureServiceImpl extends BaseService implements HomePagePictureService {@Overridepublic String getHomePagePicture(String page, String position) {// TODO Auto-generated method stubposition = position + "%";List li = getHomePagePictureDao().getHomePagePicture(page, position);JSONArray array = new JSONArray();for (int i = 0; i < li.size(); i++) {            Object[] obj = (Object[]) li.get(i);                       <span style="color:#ff0000;"> JSONObject jsonObject = new JSONObject(); </span>            jsonObject.put("path", obj[0]);            jsonObject.put("alt", obj[1]);            jsonObject.put("url", obj[2]);            <span style="color:#ff0000;">array.put(jsonObject);</span>        }System.out.println("array-------" + array);return array.toString();}}
3、配置struts.xml
<pre name="code" class="html"><?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><!--下述语句是将struts2交给spring管理 --><constant name="struts.objectFactory" value="spring" /><!-- 当struts配置文件发生改变时系统是否重新加载该文件 --><constant name="struts.configuration.xml.reload" value="false" /><!-- 开发模式下使用,这样可以打印出更详细的错误信息 --><constant name="struts.devMode" value="true" /><span style="color:#ff0000;"><constant name="struts.i18n.encoding" value="UTF-8"/></span><package name="welcome" extends="<span style="color:#ff0000;">json-default</span>" namespace="/"><action name="homePagePictureAction" class="homePagePictureAction"><result type="json"><param name="noCache">true</param><param name="contentType">text/html</param></result></action></package></struts>    
经过以上配置这样就可以使用json了

<strong><u><span style="font-size:32px;color:#ff0000;">注意:文中红色部分一定要注意</span></u></strong>





0 0