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. 请求https接口时报错:Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificat,安装certifi

    如何解决SSL 根证书验错误: 一种解决方法是:verify=False 在session.request 里面: session.post(post_url,data=post_data,heade ...

  2. centos7安装kafka 转

    CentOS7安装和使用kafka         环境准备 安装kafka之前我们需要做一些环境的准备 1.centOS7系统环境 2.jdk环境 3.可用的zookeeper集群服务 安装jdk ...

  3. spring boot: 从配置文件中读取数据的常用方法(spring boot 2.3.4)

    一,从配置文件中读取数据有哪些方法? 通常有3种用法: 1,直接使用value注解引用得到配置项的值 2,  封装到Component类中再调用 3,  用Environment类从代码中直接访问 生 ...

  4. git merge 与 git rebase的区别?

    一,git merge 与 git rebase的区别 1,git merge 例如: master分支合并dev分支,git将两个分支dev和master上的所有commit , 按照提交时间的先后 ...

  5. centos 安装docker方法2

    1 更新yum yum -y update 2 执行命令 linux 安装dockersudo wget -qO- https://get.docker.com | sh解释如下sudo 使用root ...

  6. css和xpath定位补充

    定位的网页的地址:https://item.jd.com/100000323510.htmlxpath绝对定位: 1 以"/"开头的是绝对定位 2 /html/body/div[1 ...

  7. 面试官问:HashMap在并发情况下为什么造成死循环?一脸懵

    这个问题是在面试时常问的几个问题,一般在问这个问题之前会问Hashmap和HashTable的区别?面试者一般会回答:hashtable是线程安全的,hashmap是线程不安全的. 那么面试官就会紧接 ...

  8. 如何对数据进行MD5加密

    前端进行加密 /** * jQuery MD5 hash algorithm function * * <code> * Calculate the md5 hash of a Strin ...

  9. eclipse 包与子包的视图显示方式切换

    上图Package Presentation ---> Hierarchical(如下图显示父包与子包) 参考:https://zhidao.baidu.com/question/2205086 ...

  10. 数据恢复软件推荐-easyrecovery绿色破解版(附注册码)免费下载

    easyrecovery破解版专注于PC端存储数据的抢救恢复,软件的整体界面风格和360杀毒有些许相似,没有看起来像牛皮藓的杂乱广告,只有六个功能按键,对应你所遇到的数据丢失状况级别,点击最为适合的功 ...