这篇随笔算是接上篇的数据请求返回,上一篇关于分页用的返回的数据形式是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. Codeforces Round #257 (Div. 2) A. Jzzhu and Children(简单题)

    题目链接:http://codeforces.com/problemset/problem/450/A ------------------------------------------------ ...

  2. Cacti监控一台Webserver上多个Tomcatport的实现

    由于一台web应用server上面安装了多台tomcat,有多个port.比方默认的8080,还有兴许追加的9100,9300,9500等等.一个cacti_host_template_tomcat_ ...

  3. 側滑回退的layout(相似IOS側滑回退到上一个activity)

    用过apple的同学应该都知道,大多数IOS应用都支持側滑回退,就不具体说明了,直接上图: 作为使用ios的android开发人员来说,我是特别喜欢这个功能的.既然这样,那就在android上也实现这 ...

  4. BZOJ 1211 HNOI2004 树的计数 Prufer序列

    题目大意:给定一棵树中全部点的度数,求有多少种可能的树 Prufer序列.详细參考[HNOI2008]明明的烦恼 直接乘会爆long long,所以先把每一个数分解质因数.把质因数的次数相加相减.然后 ...

  5. C语言之基本算法37—数组最大值及其位置

    //数组运算 /* ================================================================== 题目:查找数组的最大元素,并输出其位置和值! ...

  6. 利用AndroidStudio开发java工程

    1.新建一个project,或者如果你已经有project的话,那就直接新建一个module.注意选择Java library,然后下一步. 2.输入module的一些信息.点击finish.(在创建 ...

  7. svn协同开发下的dll版本管理最佳实践

    作为一名开发人员,常常碰到的一个问题是,当使用svn签出一份最新代码时,经常不能一次编译通过,导致花费大量时间去解决编译问题,这里碰到的问题一般可以分为三类: 1. 由于提交代码的开发人员失误,忘记提 ...

  8. zTree多条件模糊查询

    function searchFun() { var zTrees=$.fn.zTree.getZTreeObj("ztree");//获得所有几点 var hiddenNodes ...

  9. DeepLearning.ai学习笔记(三)结构化机器学习项目--week2机器学习策略(2)

    一.进行误差分析 很多时候我们发现训练出来的模型有误差后,就会一股脑的想着法子去减少误差.想法固然好,但是有点headlong~ 这节视频中吴大大介绍了一个比较科学的方法,具体的看下面的例子 还是以猫 ...

  10. MySQL 如何存储长度较大的varchar与blob

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/96 最近,在工作中遇到了MySQL中如何存储长度较长的字段类型问 ...