之前一段时间做项目对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时需要注意的一些关键知识点: 1. **引入依赖库**:为了在Struts2中使用JSON功能,你需要在项目中引入特定的库。这些库包括: - `struts2-json-plugin-2.1.8.1.jar`:这是Struts2的...
在Struts2中使用JSON,开发者可以将服务器端处理的结果以JSON格式返回给客户端,从而实现动态页面的更新。 为了在Struts2项目中使用JSON功能,我们需要引入一些特定的jar包。这些jar包提供了Struts2对JSON的支持...
总的来说,"struts2+json"资源涉及到了Struts2框架中的Action设计、拦截器机制、结果类型的配置,以及AJAX和JSON在Web应用中的使用。理解这些知识点对于开发动态、交互性强的Java Web应用至关重要。
赠送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-...
使用Struts2和jQuery EasyUI实现简单CRUD系统,从零开始,从基础的EasyUI与Struts2的使用json格式进行交互开始。
struts2-json-plugin,Struts JSON插件
在Struts2中,JSON(JavaScript Object Notation)的使用极大地增强了与前端JavaScript进行异步交互的能力,使得AJAX(Asynchronous JavaScript and XML)应用变得更加简单。在Struts2中集成JSON,我们可以实现将...
使用Struts2和jQuery EasyUI实现简单CRUD系统,从零开始,从基础的ajax与Struts2的使用json格式进行交互开始。
struts2使用json返回对象和列表(案例)参考.pdf
这个插件允许开发者在Struts 2中轻松地创建能够返回JSON的Action,使得前端(通常使用JavaScript库如jQuery)可以获取到JSON数据并进行进一步处理。 现在我们来详细讨论这两个库在实际应用中的作用: 1. **json-...
这样,Struts2就能够识别`json`类型的结果,并使用`JSONResult`来将Action返回的数据转换成JSON格式。 #### 3. 定义Action方法 在Struts2中,Action类中的方法负责处理来自客户端的请求。为了返回JSON数据,可以...
在使用Struts2框架开发Web应用时,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,常常被用于在服务器端与客户端之间传递数据。本文将详细讲解在Struts2中使用JSON时需要注意的几个关键点。 ...
`struts2-json-plugin`是Struts2的一个插件,它使得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数据的方法。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互,尤其是在AJAX请求中。Struts2提供了一套方便的机制来支持JSON...
使用Struts2的JSON功能时,需要注意安全问题。由于JSON可以暴露敏感信息,应避免在JSON响应中包含敏感数据。此外,Struts2的JSON漏洞曾引起广泛关注,因此保持框架版本的更新至关重要,以修复可能的安全漏洞。 8. ...
本文将深入探讨JSON的基本概念、为何在Struts2中使用它,以及如何在Struts2 Action中处理和利用JSON。 **什么是JSON?** JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式。它的结构简洁且易于...
Struts2、JSON和Android是三个在Web应用开发中至关重要的技术。本示例将详细介绍如何结合这三者实现一个简单的交互。 首先,Struts2是一个基于MVC(Model-View-Controller)架构的Java Web框架,它简化了创建动态、...
在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...
首先,为了在Struts2中使用Ajax和JSON,我们需要引入以下库: 1. Struts2的核心库:`struts2-core.jar` 2. Struts2的JSON插件:`struts2-json-plugin.jar` 3. JSON处理库:`json-lib.jar`(通常在Struts2的JSON插件...