1.传统的写多个request接受参数方法。

2.struts2中的多个setter方法,getter方法

3.利用实体bean,让strut2 实例bean,少写setter方法,getter方法,表单name前面要加对象。如果action实现了ModelDriven接口,那么表单name前面不用加对象

  

1,2,3三种,为 form 表单传输或者通过URL地址添加参数传输,地址栏发生改变。

4. 利用Ajax中json数据格式进行异步传输(地址栏不发生改变):一般用于执行某操作之后,回调函数接受返回的消息,然后进行跳转。或通过回调函数接受返回的数据内容,加载到本页面。

5.

response.getWriter().write("{\"msg\":true}");
response.getWriter().write(JSONObject.fromObject("{msg:" + true + "}").toString());

这两种方式都可以,第一种多写一些双引号,json字符串的原始形式,第二种不是的,所以需要转型下。对象就是用这种转型,response.getWriter().write(JSONObject.fromObject(对象).toString());

list集合,就是response.getWriter().write(JSONObject.fromObject(list集合).toString())这样。

6.json接受和传送例子:

接受:  

JSONObject jsonobject = JSONObject.fromObject(json);
System.out.println(jsonobject.get("score"));
StudentBean sb=(StudentBean)JSONObject.toBean(jsonobject,StudentBean.class);
System.out.println(sb.getName());

传送:

System.out.println(JSONObject.fromObject(sb));
response.setContentType("application/json; charset=utf-8");
//response.getWriter().write("{\"name\":\"李鹏\",\"score\":1470,\"xuehao\":12212}");
response.getWriter().write("{\"msg\":true}");
response.getWriter().write(JSONObject.fromObject("{msg:" + true + "}").toString());
response.getWriter().close();

js端的:

$.post("student_add", {
json:jsonString
}, function(data) {
/*if(data.msg){
alert("保存成功");
window.location.href="stockholder_list";
//window.location.reload();
}else{
alert("保存失败")
}*/
//alert(data);
//alert(typeof(data));
//alert(data);
//if(data.valueOf("123")){
// alert("nihao");
//}

if(data.msg){
alert("保存成功");
window.location.href="student_list";
}else{
alert("保存失败")
}

/*alert(data.name);*/

});

Ajax网址:http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html

$.ajax({})例子:

$(".cha").click(function() {
     var obj=new Object();
   obj.username=$("input[name=username]").val();
   var jsonString=JSON.stringify(obj);
   alert(jsonString);

$.ajax({
   type:"post",
   url:"student_listByName",
   data:{json:jsonString},
   dataType:"json"
  });
  
 
  })

$.ajax()中传入是对象,与$.get().$.post()不一样,功能上更全。

$.get().$.post()中数据形式为:{json:jsonString} $.ajax中数据格式为:data:{json:jsonString},看来都必须是{key:value}形式,服务器端接收就是接收key,如果数据比较多,value就可以key/value的组合形式。

7.乱码解决问题的几种情况:tomcat服务器的编码,request设置编码,struts国际化设置编码,过滤器统一设置编码,数据库中编码设置。

8.jQuery 学习网址:http://www.jbxue.com/jb/jquery/

struts2中数据的传输的更多相关文章

  1. struts2中从后台读取数据到<s:select>

    看到网上好多有struts2中从后台读取数据到<s:select>的,但都 不太详细,可能是我自己理解不了吧!所以我自己做了 一个,其中可能 有很多不好的地方,望广大网友指出 结果如图 p ...

  2. struts2:数据校验,通过Action中的validate()方法实现校验,图解

    根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种 Struts2中提供了一个com.opensymphony.xwork2.Valid ...

  3. struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)

    前文:struts2:数据校验,通过Action中的validate()方法实现校验,图解 如果定义的Action中存在多个逻辑处理方法,且不同的处理逻辑可能需要不同的校验规则,在这种情况下,就需要通 ...

  4. Struts2中validate数据校验的两种常用方法

    本文主要介绍Struts2中validate数据校验的两种方法及Struts2常用校验器.  1.Action中的validate()方法 Struts2提供了一个Validateable接口,这个接 ...

  5. struts2(三)---struts2中的服务端数据验证框架validate

    struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证. ActionSupport类提供了一个validate()方法,当我们需要在某一个acti ...

  6. struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的?

    struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的? 解答: 1)可以直接通过与表单元素相同名称的数据成员(需要存在符合命名规范set和get ...

  7. Struts2中的数据类型转换

    Struts2对数据的类型转换 一.Struts2中自带类型转换拦截器 Struts2内部提供了大量转换器,用来完成数据类型转换的问题,有如下 * boolean 和 Boolean * char和 ...

  8. 浏览器在一次 HTTP 请求中,需要传输一个 4097 字节的文本数据给服务端,可以采用那些方式?

    浏览器在一次 HTTP 请求中,需要传输一个 4097 字节的文本数据给服务端,可以采用那些方式? 存入 IndexdDB 写入 COOKIE 放在 URL 参数 写入 Session 使用 POST ...

  9. Struts2 中的数据传输

    1.     如何将参数从界面传递到Action? 你可以把Struts2中的Action看做是Struts1的Action+ActionForm,即只需在Action中定义相关的属性(要有gette ...

随机推荐

  1. PHP 超级全局变量 $_GET

    https://www.php.cn/php/php-superglobals.html https://m.php.cn/code/11853.html

  2. centos8平台使用xfs文件系统

    一,xfs文件系统的特点 XFS是一种高性能的日志文件系统, 它是由SGI公司设计的,被称为业界最先进的.最具可升级性的文件系统技术. 最初是从unix(irix)移植到linux系统上的. 从cen ...

  3. 【认知服务 Azure Cognitive Service】使用认知服务的密钥无法访问语音服务[ErrorCode=AuthenticationFailure] (2020-08时的遇见的问题,2020-09月已解决)

    问题情形 根据微软认知服务的文档介绍,创建认知服务(Cognitive Service)后,可以调用微软的影像(计算机视觉,人脸),语言(LUIS, 文本分析,文本翻译),语音(文本转语音,语音转文本 ...

  4. ES5新增数组的方法

    ES5新增数组的方法 ES5新增数组常见方法(indexOf/forEach/map/filter/some/every) .indexOf( data , start)  检测数组中是否存在指定数据 ...

  5. 《NASA对N+3代先进飞行器概念设计最终报告》阅读笔记

    民用航空的爆炸式增长已是未来的必然,灿烂的前景也意味着巨大的挑战,谁能发掘到未来技术的潜力,谁就能称霸下一个30年的天空! 文章目录 总概述 单双争霸 四点发现 方案分析 多维度分析 设计要求 品质因 ...

  6. ImageLoader简介和使用方法

    1.功能概要 Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示. (1).使用多线程加载图片(2) ...

  7. 在Linux上成功启动Jenkins却无法访问的问题

    本鸟最近打算学习Jenkins,正准备在Linux上面鼓捣一番,,却没想被入门级别问题当头一棒 下载完jenkins.war,使用java -jar命令在8088端口开启服务:java -jar je ...

  8. Ⅳ Monte Carlo Methods

    Dictum:  Nutrition books in the world. There is no book in life, there is no sunlight; wisdom withou ...

  9. pyqt5为控件设置提示信息

    # 显示控件提示消息 import sys from PyQt5.QtWidgets import QHBoxLayout,QMainWindow,QApplication,QToolTip,QPus ...

  10. B. Game of the Rows 解析(思維)

    Codeforce 839 B. Game of the Rows 解析(思維) 今天我們來看看CF839B 題目連結 題目 有如下圖片所示的飛機座位\(n\)排,和\(k\)隊士兵,每隊數量不一定. ...