这篇随笔算是接上篇的数据请求返回,上一篇关于分页用的返回的数据形式是json,http://www.cnblogs.com/tele-share/p/7192206.html这次主要探讨ajax从struts接收html和io流的数据形式.

方式一:接收html格式的数据

jsp页面

 <!-- ajax从struts请求拼接完成的html -->
<script type="text/javascript">
var url = "${pageContext.request.contextPath}/test?time=" + new Date().getTime();
$("#findAjax").click(function() {
$.ajax({
url:url,
type:"GET",
dataType:"html",
data:null,
aysnc:false,
success:function(backdata) {
// alert(backdata);
$("body").append(backdata);
},
error:function(ajax) {
alert(ajax.readyState);
}
})
})
</script>

后台struts方法

 public String execute() throws Exception {
System.out.println("TestAction.execute()");
StringBuffer sb = new StringBuffer();
sb.append("<table border='2px'>").append("<tr><td>编号</td><td>姓名</td></tr>");
sb.append("<tr><td>1</td><td>wyc</td></tr>");
sb.append("<tr><td>2</td><td>tele</td></tr>");
sb.append("<tr><td>3</td><td>fifth</td></tr>");
sb.append("</table>");
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
pw.write(sb.toString());
pw.flush();
pw.close();
System.out.println(sb);
return null;
}

方式二:以流的方式

jsp页面

 <script type="text/javascript">
var url = "${pageContext.request.contextPath}/test2?time=" + new Date().getTime();
$("#findAjax").click(function() {
$.ajax({
url:url,
type:"GET",
dataType:"html",
data:null,
aysnc:false,
success:function(backdata) {
alert(backdata);
$("body").append(backdata);
},
error:function(ajax) {
alert(ajax.readyState);
}
})
})
</script>

后台struts方法,注意中文乱码问题

 private InputStream is;
public InputStream getIs() {
return is;
} public String execute2() {
StringBuffer sb = new StringBuffer();
sb.append("<table border='2px'>").append("<tr><td>编号</td><td>姓名</td></tr>");
sb.append("<tr><td>1</td><td>wyc</td></tr>");
sb.append("<tr><td>2</td><td>tele</td></tr>");
sb.append("<tr><td>3</td><td>fifth</td></tr>");
sb.append("</table>");
String string = sb.toString();
try {
is = new ByteArrayInputStream(string.getBytes("utf-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return "OK";
}

配置文件(本可以用通配符的方式来写,但为了清晰采用这种方式,虽然只有一个action)

 <!-- test -->
<package name="xxx" extends="struts-default">
<!-- 依赖servlet Api返回数据 -->
<action name="test" class="com.itcast.action.TestAction" method="execute">
</action> <!-- 使用流的方式返回数据,注意type=stream -->
<action name="test2" class="com.itcast.action.TestAction" method="execute2">
<result name="OK" type="stream">
<param name="contentType">text/html;charset = utf-8</param>
<param name="inputName">is</param>
</result>
</action>
</package>

总结:第一种方式依赖servlet api,但全部在服务器端完成拼接,客户端得到数据直接插入即可.第二种则是java流的方式,可以用于生成图片传输至客户端,当然还有json的形式,看情况选择使用哪种方式

ajax struts2 数据的返回形式的更多相关文章

  1. 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库

    小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...

  2. [NodeJs] 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库

    小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...

  3. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  4. echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端

    1.echarts的官网上的demo,都是直接写死的随机数据,没有和数据库的交互,所以就自己写了一下,ok,我们开始一步一步走一遍整个流程吧. 就以官网最简单的那个小demo来做修改吧.官网上的小de ...

  5. 用ajax获取后台数据,返回json数据,怎么在前台使用?

    用ajax获取后台数据,返回json数据,怎么在前台使用呢?后台 C# code   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == &qu ...

  6. Ajax例子,views返回,html接收数据

    Ajax例子,views返回,html接收数据 views from django.shortcuts import render,HttpResponse,render_to_response im ...

  7. ajax请求、servlet返回json数据

    ajax请求.servlet返回json数据 1.方式一 response.setcontenttype("text/html;charset=utf-8"); response. ...

  8. ajax 与springmvc交互返回数据

    1.controller将数据封装成json格式返回页面 @RequestMapping("/dataList") public void datalist(CsoftCunsto ...

  9. 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

    作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...

随机推荐

  1. php之str_replace具体解释

    str_replace (PHP 4, PHP 5) str_replace - Replace all occurrences of the search string with the repla ...

  2. 第03章-VTK系统概述(1)

    [译者:这个系列教程是以Kitware公司出版的<VTK User's Guide -11th edition>一书作的中文翻译(出版时间2010年,ISBN: 978-1-930934- ...

  3. PAT 1004 To Fill or Not to Fill (25)

    题目描写叙述 With highways available, driving a car from Hangzhou to any other city is easy. But since the ...

  4. 个人作业2:APP案例分析

    产品 产品名 网易云音乐 选择原因 除社交软件和浏览器以外,在手机里存在最久的也是使用次数最多的APP就是它了.不管换多少次手机和电脑,它始终在我的装机必备名单上. 调研与评测 第一次上手体验 第一次 ...

  5. Java中进制的转换函数

    十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...

  6. (转)Maven依赖的jar包下载不了、jar更新不了的解决办法

    场景一: 使用Maven的同学可能偶尔会遇到这种情况:pom.xml中依赖了项目需要的某个jar文件,但是使用Maven –> update project 还是没办法下载该jar到项目中,你可 ...

  7. 前后端分离ueditor富文本编辑器的使用-Java版本

    最近在写一个自己的后台管理系统(主要是写着玩的,用来熟悉后端java的知识,目前只是会简单的写点接口),想在项目中编写一个发布新闻文章的功能,想到了使用百度的ueditor富文本编辑器,网上找了很多j ...

  8. javascript中的异步 macrotask 和 microtask 简介

    javascript中的异步 macrotask 和 microtask 简介 什么是macrotask?什么是microtask?在理解什么是macrotask?什么是microtask之前,我们先 ...

  9. Android查缺补漏(View篇)--自定义 View 中 wrap_content 无效的解决方案

    自定义 View 中 wrap_content 无效的解决方案 做过自定义 View 的童鞋都会发现,直接继承 View 的自定义控件需要重写 onMeasure() 方法,并设置 wrap_cont ...

  10. 《金领简历:敲开苹果、微软、谷歌的大门》【PDF】下载

    <金领简历:敲开苹果.微软.谷歌的大门>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196331 内容简介 <金领简历:敲开 ...