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 ...
随机推荐
- Android之通过网络播放一首简单的音乐
首先,附上程序执行后的效果.例如以下图所看到的: 一.部署一个web项目到tomcatserver上: 1.这个小程序是结合网络来播放一首音乐的,首先,把我们搞好的一个web项目放置在tomcat安装 ...
- 20150605面试汇总--js与java的差别
javascript与java都是编程语言,不同在于代码格式不同. js基于对象,java是面向对象: java是强变量.编译前必须作出声明.js是弱变量,使用前不需做声明: JavaScript 是 ...
- Android 获取SD卡路径和推断SD卡是否存在
android获取sd卡路径方法: 不建议直接写死android sd卡的路径. public String getSDPath(){ File sdDir = null; boolean sdCar ...
- Android查缺补漏--Activity生命周期和启动模式
一.生命周期 onCreate():启动Activity时,首次创建Activity时回调. onRestart():再次启动Activity时回调. onStart():首次启动Activity时在 ...
- 主从DB与cache一致性
本文主要讨论这么几个问题: (1)数据库主从延时为何会导致缓存数据不一致 (2)优化思路与方案 一.需求缘起 上一篇<缓存架构设计细节二三事>中有一个小优化点,在只有主库时,通过" ...
- json api
from flask import Flask, redirect, url_for, jsonify, request app = Flask(__name__) users = [] ''' RE ...
- 一个Web前端自学者的自述
想来想去还是写下这篇文章,先说明,我精通JAVA编程语言和web前端常见的技术,个人是做JAVA的多,但是更加喜欢前端.因为我从高一开始接触JAVA,家父是黑马的JAVA讲师,自己对编程很热爱,在大学 ...
- ERROR: Java 1.7 or later is required to run Apache Drill.
问题 Apache 的 drill 执行启动命令 drill-embedded 报错: ERROR: Java 1.7 or later is required to run Apache Drill ...
- 《编程珠玑(第2版)》【PDF】下载
<编程珠玑(第2版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382225 内容简介 书的内容围绕程序设计人员面对的一系列实 ...
- Mac和Xcode常用的快捷键
Mac电脑一般都不怎么用鼠标,因此除了触摸屏的各种双指.三指甚至四指的操作之外,快捷键的使用可以带来非常大的便利,本文则主要收集整理了自己在Mac常规和Xcode开发过程中常用的一些快捷键. 一.Ma ...