`
747017186
  • 浏览: 333945 次
社区版块
存档分类
最新评论

Struts2怎么使用json

 
阅读更多

之前一段时间做项目对Struts2有所了解,这里做个记录。

Struts2可以返回json字符串,比如,返回到页面上一大段json代码,

下面我们看代码:

这是action里面的代码,看到返回值是空,并不是string,因为不需要跳转任何页面,只需要向页面写数据即可。这里我们运用最经典的response向页面写入数据。这之前刚开始学servlet的时候就学过的。

/**

* ajax管辖机构数据

* @return

*/

public void jurisdiction() throws IOException{

this.printToJsp(getJurDate());//向页面打印字符串

}

/**

* 向页面打印

* @author hjh

* @return

*/

public void printToJsp(String content) throws IOException{

/*

* 在调用getWriter之前未设置编码(既调用setContentType或者setCharacterEncoding方法设置编码),

* HttpServletResponse则会返回一个用默认的编码(既ISO-8859-1)编码的PrintWriter实例。这样就会

* 造成中文乱码。而且设置编码时必须在调用getWriter之前设置,不然是无效的。

* */

response.setContentType("text/html;charset=gbk");

//response.setCharacterEncoding("UTF-8");

PrintWriter out = response.getWriter();

//JSON在传递过程中是普通字符串形式传递的,这里简单拼接一个做测试

out.println(content);

out.flush();

out.close();

}

 

xml:配置文件,直接配置一个action即可,由于没有页面进行跳转,所以这里没有result选项,这样代码会写入到ajax返回处

<!--ajax得到管辖机构数据-->

      <action name="jurisdiction" class="com.hljw.health.plat.action.pcommunity.JurisdictionAction" method="jurisdiction">

          <interceptor-ref name="hljw-user"></interceptor-ref>

      </action>

 

看看是不是很神奇,但是这个有个致命的缺点,就是你如果要得到html片段的话,你必须拼接大量的html代码,这样你会疯的。所以下面这个方法可以直接返回一个html片段,你得到这个片段之后,直接向指定的页面标签用html(data)写入即可。

 

action里面的代码:

这个代码返回的是有页面的,这样的话Struts可以把整个页面都返回给调用处作为一个html片段使用。同时在回调函数里面也可以使用,$(data).find("p")来寻找片段某个特定的标签,很好使用的。

public String ajaxHealthMonitorInfo(){

if("0".equals(flag)){//列表

return "list";

}else{//K线图

return "k";

 

}

}

 

xml代码:直接写要跳转的页面即可,很简单的。

<!-- ajax一个人监控信息,K线图 -->

      <action name="ajaxHealthMonitorInfo" class="com.hljw.health.plat.action.healthmonitoring.HealthmonitoringAction" method="ajaxHealthMonitorInfo">

          <result name="list">/WEB-INF/jsp/plat/healthmonitoring/ajaxview.jsp</result>

          <result name="k">/WEB-INF/jsp/plat/healthmonitoring/ajaxkline.jsp</result>

</action>

 

html片段:引入一些常见的标签,就跟页面展示一样,页面不需要html,head,body之类的,仅仅是你需要展示到ajax调用处的片段是什么即可。

<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

<div class="right_topbox1">

  <div class="rttitle"><c:if test="${pageList0.listData.size()==4}"><a href="${rootPath}/plat/healthmonitoring/list.htm?id=${queryBean1.id}&healthMonitor.list=0">更多</a></c:if>本地心电监测数据</div>

</div>

<div class="tab_bk2">

<table class="list_tab">

<c:if test="${empty pageList0.listData}">

 <tr class="row" onmouseover="this.className='overrow'" onmouseout="this.className='row'" align="center">

     <td>暂无数据</td>

 </tr>

</c:if>

<c:if test="${not empty pageList0.listData}">

 <tr class="head">

     <th>发送时间</th>

     <th>监测数据</th>

     <th>正常/异常</th>

 </tr>

 <c:forEach items="${pageList0.listData}" var="p">

 <tr class="row" onmouseover="this.className='overrow'" onmouseout="this.className='row'" align="center">

     <td><fmt:formatDate value="${p.postDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>

     <td>心率:${p.heartrate}</td>

     <td>

      <c:choose>

      <c:when test="${p.isException=='0'}"><img src="${rootPath}/images/healthmonitor/ok.png" title="正常"/></c:when>

      <c:when test="${p.isException=='1'}"><img src="${rootPath}/images/healthmonitor/error.png" title="异常"/></c:when>

      <c:otherwise><img src="${rootPath}/images/healthmonitor/unknown.png" title="未知"/></c:otherwise>

    </c:choose>

    </td>

 </tr>

 </c:forEach>

  </c:if>

</table>

</div>

</div>

 

jsp页面ajax调用处:

//监控数据展示

function ajaxMonitor(flag,obj){

$('.selected').removeClass("selected");

$(obj).addClass("selected");

$('#jianceshuju').html("正在加载请稍后...");

$.ajax({ 

async:true,

cache:false,

data:{id:"${queryBean1.id}",flag:flag},

dataType:"html",

type:"post",

       url: "${rootPath}/plat/healthmonitoring/ajaxHealthMonitorInfo.htm",

success: function(data){//回调函数,$(data).find("p")来寻找片段某个特定的标签,很好使用的。

if(flag=="0"){//列表展示

$('#jianceshuju').html(data);

}else if(flag=="1"){//图形展示

$('#jianceshuju').html($(data).html());

kline();

}

}

});

}

分享到:
评论

相关推荐

    struts2使用json

    以下是你在使用Struts2集成JSON时需要注意的一些关键知识点: 1. **引入依赖库**:为了在Struts2中使用JSON功能,你需要在项目中引入特定的库。这些库包括: - `struts2-json-plugin-2.1.8.1.jar`:这是Struts2的...

    struts2使用json时要添加的jar包

    在Struts2中使用JSON,开发者可以将服务器端处理的结果以JSON格式返回给客户端,从而实现动态页面的更新。 为了在Struts2项目中使用JSON功能,我们需要引入一些特定的jar包。这些jar包提供了Struts2对JSON的支持...

    struts2+json

    总的来说,"struts2+json"资源涉及到了Struts2框架中的Action设计、拦截器机制、结果类型的配置,以及AJAX和JSON在Web应用中的使用。理解这些知识点对于开发动态、交互性强的Java Web应用至关重要。

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...

    EasyUI与Struts2使用json格式交互实例

    使用Struts2和jQuery EasyUI实现简单CRUD系统,从零开始,从基础的EasyUI与Struts2的使用json格式进行交互开始。

    struts2-json-plugin

    struts2-json-plugin,Struts JSON插件

    struts2使用json返回对象和列表(案例)

    在Struts2中,JSON(JavaScript Object Notation)的使用极大地增强了与前端JavaScript进行异步交互的能力,使得AJAX(Asynchronous JavaScript and XML)应用变得更加简单。在Struts2中集成JSON,我们可以实现将...

    ajax与Struts2使用json格式交互实例

    使用Struts2和jQuery EasyUI实现简单CRUD系统,从零开始,从基础的ajax与Struts2的使用json格式进行交互开始。

    struts2使用json返回对象和列表(案例)参考.pdf

    struts2使用json返回对象和列表(案例)参考.pdf

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    这个插件允许开发者在Struts 2中轻松地创建能够返回JSON的Action,使得前端(通常使用JavaScript库如jQuery)可以获取到JSON数据并进行进一步处理。 现在我们来详细讨论这两个库在实际应用中的作用: 1. **json-...

    struts2与json整合

    这样,Struts2就能够识别`json`类型的结果,并使用`JSONResult`来将Action返回的数据转换成JSON格式。 #### 3. 定义Action方法 在Struts2中,Action类中的方法负责处理来自客户端的请求。为了返回JSON数据,可以...

    struts2使用json注意事项

    在使用Struts2框架开发Web应用时,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,常常被用于在服务器端与客户端之间传递数据。本文将详细讲解在Struts2中使用JSON时需要注意的几个关键点。 ...

    struts2-json-plugin源码

    `struts2-json-plugin`是Struts2的一个插件,它使得Struts2能够处理JSON请求和响应,无需额外的配置或库。这个插件不仅包含了源码,还包含了必要的配置文件和类,使得开发者可以深入理解其工作原理并进行自定义扩展...

    struts2要使用json必须的两个包

    在Struts2中使用JSON,有两个关键的JAR包是必不可少的,这些正是`struts2-json-plugin-2.2.1.jar`和`json-lib-2.3-jdk15.jar`。 首先,`struts2-json-plugin-2.2.1.jar`是Struts2 JSON插件的实现库。这个插件为...

    struts2返回JSON数据的两种方式

    在本文中,我们将探讨两种在Struts2框架中返回JSON数据的方法。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互,尤其是在AJAX请求中。Struts2提供了一套方便的机制来支持JSON...

    struts2-json

    使用Struts2的JSON功能时,需要注意安全问题。由于JSON可以暴露敏感信息,应避免在JSON响应中包含敏感数据。此外,Struts2的JSON漏洞曾引起广泛关注,因此保持框架版本的更新至关重要,以修复可能的安全漏洞。 8. ...

    在Struts2使用Json.doc

    本文将深入探讨JSON的基本概念、为何在Struts2中使用它,以及如何在Struts2 Action中处理和利用JSON。 **什么是JSON?** JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式。它的结构简洁且易于...

    Struts2+Json+Android简单实现

    Struts2、JSON和Android是三个在Web应用开发中至关重要的技术。本示例将详细介绍如何结合这三者实现一个简单的交互。 首先,Struts2是一个基于MVC(Model-View-Controller)架构的Java Web框架,它简化了创建动态、...

    struts2-json-plugin-2.3.8.jar

    在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...

    Struts2 ajax json使用介绍

    首先,为了在Struts2中使用Ajax和JSON,我们需要引入以下库: 1. Struts2的核心库:`struts2-core.jar` 2. Struts2的JSON插件:`struts2-json-plugin.jar` 3. JSON处理库:`json-lib.jar`(通常在Struts2的JSON插件...

Global site tag (gtag.js) - Google Analytics