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. Hash算法简介

    Hash算法性质 Hash算法用于计算消息摘要(Message Digest),可以将任意长的输入信息快速地转换为固定长度的输出.在区块链中主要利用了Hash算法的三种性质: 抗冲突性(Collisi ...

  2. 适合刚刚学习编程的萌新:C语言编程学习制作超简单又好玩的报数游戏!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  3. 【树形DP】BZOJ 3829 Farmcraft

    题目内容 mhy住在一棵有n个点的树的1号结点上,每个结点上都有一个妹子i. mhy从自己家出发,去给每一个妹子都送一台电脑,每个妹子拿到电脑后就会开始安装zhx牌杀毒软件,第i个妹子安装时间为Ci. ...

  4. 骨架屏(page-skeleton-webpack-plugin)初探

    作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/2436173500265335 微信公众 ...

  5. ABAP分享十: 文件的上传 方法一

    前提条件:PARAMETERS P_files TYPE RLGRAP-FILENAME. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_files.一.文件的 ...

  6. 《Connecting the Dots: A Knowledgeable Path Generator for Commonsense Question Answering》一文的理解和总结

    构建常识问答知识路径生成器 论文贡献 ​ 提出学习一个多跳知识路径产生器来根据问题动态产生结构化证据.生成器以预先训练的语言模型为主干,利用语言模型中存储的大量非结构化知识来补充知识库的不完整性.路径 ...

  7. nrm切换npm源

    使用 nrm 提供了一些最常用的npm包镜像地址,能够让我们快速的切换安装包时候的服务器地址: 全局安装nrm包 npm i nrm -g 查看当前所有可用的镜像源地址以及当前所使用的镜像源地址 nr ...

  8. 使用PL/SQL Developer 学习pl/sql

    1.创建表并且插入一些数据 (这里表名为test): 2. New 一个SQL Window敲下如下代码(--为注释部分): declare   --declare:用于plsql中的声明变量,和be ...

  9. 云计算管理平台之OpenStack计算服务nova

    一.nova简介 nova是openstack中的计算服务,其主要作用是帮助我们在计算节点上管理虚拟机的核心服务:这里的计算节点就是指用于提供运行虚拟机实例的主机,通常像这种计算节点有很多台,那么虚拟 ...

  10. Redis常用命令(2)——String

    APPEND 格式:APPEND key value 作用:在key的键值后追加value,如果key不存在,则创建key,并存入value. 返回值:追加value后的字符串长度. 示例: 192. ...