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 ...
随机推荐
- 4、libgdx应用框架
(原文:http://www.libgdx.cn/topic/29/4-libgdx%E5%BA%94%E7%94%A8%E6%A1%86%E6%9E%B6) 模块 作为核心.libgdx提供了六个接 ...
- Android调用系统自带的文件管理器进行文件选择
http://blog.csdn.net/zqchn/article/details/8770913的补充 FileUtils文件 public class FileUtils { publi ...
- 《C程序猿从校园到职场》勘误
(本人正在參加2015博客之星评选.诚邀你来投票,谢谢:username=zhouzxi">http://vote.blog.csdn.net/blogstar2015/candida ...
- java中websocket的应用
在上一篇文章中,笔者简要介绍了websocket的应用场景及优点,戳这里 这篇文章主要来介绍一下在java项目中,特别是java web项目中websocket的应用. 场景:我做了一个商城系统,跟大 ...
- Error:Execution failed for task ':app:mergeDebugResources'. > Crunching Cruncher ******.9.png
有时候在Android Studio导入Eclipse项目时,会出现Error:Execution failed for task ':app:mergeDebugResources'. > C ...
- 【批处理】IF ERRORLEVER语句顺序注意
@echo off dir d:\dddddd if errorlevel 1 goto 1 if errorlevel 0 goto 0 rem 两行if语句不可交换位置,否则失败了也会显示成功. ...
- C++11 新知识点
翻了下新版的C++ Primer,新的C++ 11真是变化很大,新增了很多语法特性.虽然已经很久没在写C++了,但一直对这门经典语言很感兴趣的,大致看了看前几章基础部分,总结下新特性备个忘吧.估计也很 ...
- iOS超全开源框架、项目和学习资料汇总--数据库、缓存处理、图像浏览、摄像照相视频音频篇
iOS超全开源框架.项目和学习资料汇总--数据库.缓存处理.图像浏览.摄像照相视频音频篇 感谢:Ming_en_long 的分享 大神超赞的集合,http://www.jianshu.com/p/f3 ...
- ABP .Net Core API和Angular前端APP独立部署跨域问题(No Access-Control-Allow-Origin)
前言: 通过ABP官网(https://aspnetboilerplate.com)下载ASP.NET Core 2.x + Angular模板项目是按ReStful风格架构Web API和angul ...
- 阅读MDN文档之CSS选择器介绍(一)
本文为阅读MDN文档笔记 目录 Different types of Selectors Attribute Selectors Presence and value attribute select ...