ajax struts2 数据的返回形式
这篇随笔算是接上篇的数据请求返回,上一篇关于分页用的返回的数据形式是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 数据的返回形式的更多相关文章
- 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...
- [NodeJs] 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...
- jquery的ajax异步请求接收返回json数据
http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...
- echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端
1.echarts的官网上的demo,都是直接写死的随机数据,没有和数据库的交互,所以就自己写了一下,ok,我们开始一步一步走一遍整个流程吧. 就以官网最简单的那个小demo来做修改吧.官网上的小de ...
- 用ajax获取后台数据,返回json数据,怎么在前台使用?
用ajax获取后台数据,返回json数据,怎么在前台使用呢?后台 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == &qu ...
- Ajax例子,views返回,html接收数据
Ajax例子,views返回,html接收数据 views from django.shortcuts import render,HttpResponse,render_to_response im ...
- ajax请求、servlet返回json数据
ajax请求.servlet返回json数据 1.方式一 response.setcontenttype("text/html;charset=utf-8"); response. ...
- ajax 与springmvc交互返回数据
1.controller将数据封装成json格式返回页面 @RequestMapping("/dataList") public void datalist(CsoftCunsto ...
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
作者:ssslinppp 时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...
随机推荐
- iOS开发-自己定义后台显示图片(iOS7-Background Fetch的应用)
之前在用电池医生的时候, 发现它有这样一个功能:当应用进入后台的时候, 会显示另外一张图片覆盖App Switcher显示的界面. 效果例如以下: 变成----> 而这种一个功能, 对于保护用户 ...
- 一位10年Java工作经验的架构师聊Java和工作经验
从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源软件推动者之一, ...
- bootstrap插件summernote 的使用
一.有时Java工程中会用到summernote 编辑器,下面简单说一下引用 1.将summernote 相应的文件放到工程中(webapp下面) 2.建一个jsp文件,在文件中引入相应的js.css ...
- Liunx的常用命令
常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(paren ...
- 配置SQL Server on Linux(1)
1. 背景 SQL Server一般是在安装过程中进行相关的配置,安装完成之后,再去修改有一些配置就比较麻烦,比如更改SQL Server实例级别的排序规则.但在Linux下,安装过程并没有很多可以配 ...
- 神经网络NN笔记
参考:http://www.cnblogs.com/subconscious/p/5058741.html 俗话说,好记性不如烂笔头~~~~ 边学边记,方便以后查找~~~~~ 一.介绍一下经典的神经网 ...
- Redis命令与配置
命令 开启服务端 redis-server.exe redis.conf 客户端连接 redis-cli.exe -h 127.0.0.1 -p 6379 1.连接操作相关的命令 quit:关闭连接( ...
- 9.python面向对象编程
面向对象的几个核心特性如下 Class 类一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都具备的属性(variables(data)).共同的方法 Object 对象 一 ...
- C#中MessageBox用法大全(附效果图)
1.最简单的,只显示提示信息 2. 可以给消息框加上标题. 3. "确定"和"取消" 4. 给MessageBox加上一个Icon,.net提供常见的Icon共 ...
- python模拟shell执行脚本
工作时候需要模拟shell来执行任务,借助包paramkio import paramiko class ShellExec(object): host = '127.0.0.1' port = 36 ...