json在action,$.ajax{}中的使用
首先需导入包:ezmorph-1.0.4.jar
Action中的调用的方法:
public void getObject(){
try {
if(cname!=null&& !cname.equals("")){
u=udao.findByName(cname);
JSONObject obj=new JSONObject();
obj.put("house", u.getHouse());//u是一个User对象
actionUtil.sendStringToClient(obj.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
Json的封装类:
public class ActionUtil {
/**
* 将指定的字符串发送到客户端
*
* @param content
* @throws Exception
*/
public void sendStringToClient(String content) throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(content);
}
public void sendSuccessToClient() throws Exception{
this.sendStringToClient("success");
}
/**
* 将List集合转换成对应的Json字符串
* @param list 待转换的List集合
* @return Json字符串
* @throws Exception
*/
public String generJsonStringFromList(List list) throws Exception {
JSONArray array = JSONArray.fromObject(list);
return array.toString();
}
public void sendJsonStringFromList(List list)throws Exception{
this.sendStringToClient(this.generJsonStringFromList(list));
}
}
Struts.xml中的配置:
<result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult"></result-type>
</result-types>
<action name="stipendObject" class="stipendformAction" method="getObject">
<result type="json"></result>
</action>
jsp页面中ajax:
//选择下拉列表中的某一项,其他显示框显示相应信息
function change(){
var obj = document.getElementById("name"); //定位id
var index = obj.selectedIndex; // 选中索引
var text = obj.options[index].text; // 选中文本
$.ajax({
type:'POST',
data:{cname:text},
success:function(data){ var obj=eval("("+data+")"); $("#house").val(obj.house); } });
}
jsp页面中的下拉列表
<s:select id="name" name="stipendform.name" list="ulist" class="input"
listKey="id" listValue="username" theme="simple" headerKey="0" headerValue="--------请选择员工-------"
style="margin-bottom:5px;" onchange="change();" ></s:select>
若实现级联菜单:
二级菜单用<select id="c2" name="book.category2.id"
style="margin-bottom:5px;"><option value="">二级</option></select>
$.ajax({
type :"POST",
url : "cate2list.action",
data : {con : text},
// dataType : "json",
success : function(data) {
alert(data);
var obj = eval("(" + data + ")");
alert(obj.list);
//$("#c2").val(obj.list);
var e = document.form1.c2;
for (var i=0; i<obj.list.length; i++) e.options.add(new Option(obj.list[i], obj.list[i]));
},
error : function() {
alert('加载失败!');
}
});
public void getObject() {
try {
if (con != null && !con.equals("")) {
ActionUtil actionUtil = new ActionUtil();
JSONObject obj = new JSONObject();
c2list = c2Dao.findByCate1Id(c1Dao.findByName(con).getId());
List<String> str=new ArrayList<String>();
//将对象数组转换为字符串数组 对象数组obj.put会出错
for(int i=0;i<c2list.size();i++){
str.add(c2list.get(0).getName());
}
obj.put("list", str);
actionUtil.sendStringToClient(obj.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
json在action,$.ajax{}中的使用的更多相关文章
- AJAX中的dataType(数据格式)-text、json
因为经常使用数据格式,所以将它封装成类,J这样就不会用到时就写了,直接调用写好的类就可以了 (1)dataType数据格式为:TEXT格式的数据是字符串的数据,在"ajax对数据进行删除和查 ...
- Ajax中的JSON格式与php传输过程的浅析
在Ajax中的JSON格式与php传输过程中有哪些要注意的小地方呢? 先来看一下简单通用的JSON与php传输数据的代码 HTML文件: <input type="button&quo ...
- 【转】AJAX中JSON数据的返回处理问题
AJAX处理复杂数据时,便会使用JSON格式.常用在对数据库的数据查询上.在数据库查询到数据后,便可在处理页面直接将数据转为JSON格式,然后返回. 本篇主要讨论:jQuery中,JSON数据在AJA ...
- Ajax json交互和SpringMVC中@RequestBody
Ajax json交互和SpringMVC中@RequestBody 标签: 背景 自己提供出去得接口中参数设置为@RequestBody VipPromotionLog vipPromotionLo ...
- ajax中的json和jsonp详解
出现的问题: 花了点时间研究ajax中的json和jsonp的原理,这里记录一下.以前一直在使用ajax调用数据,但是从来没有遇到跨域问题,也从来没有注意过json和jsonp的区别,总是一通乱用.但 ...
- Django中数据传输编码格式、ajax发送json数据、ajax发送文件、django序列化组件、ajax结合sweetalert做二次弹窗、批量增加数据
前后端传输数据的编码格式(contentType) 提交post请求的两种方式: form表单 ajax请求 前后端传输数据的编码格式 urlencoded formdata(form表单里的) ja ...
- ajax中设置contentType: “application/json”的作用
最近在做项目交互的时候,刚开始向后台传递数据返回415,后来百度添加了 contentType:"application/json"之后返回400,然后把传输的数据格式改为json ...
- ajax中使用post传值数组array
如果我们在data中想放入array的参数,根据在网上搜索的结果有如下方法,但是没有一个成功的……我还是贴出来,别人成功了,也许是我哪里不对,日后也许还有机会研究..在文章的最后贴出了转化为json的 ...
- ajax中加上AntiForgeryToken防止CSRF攻击
经常看到在项目中ajax post数据到服务器不加防伪标记,造成CSRF攻击 在Asp.net Mvc里加入防伪标记很简单在表单中加入Html.AntiForgeryToken()即可. Html.A ...
- JSON.stringify实例应用—将对象转换成JSON类型进行AJAX异步传值
在上一篇中,对JSON.stringify()方法有了初步的认识,并且做了一些简单的例子.本篇将进一步将JSON.stringify用在复杂些的实例中,例如如下需求: 在进jQuery AJAX异步传 ...
随机推荐
- PHP 错误与异常 笔记与总结(14 )记录和发送异常信息
当发生异常时,把异常信息记录到日志文件中: <?php header('content-type:text/html; charset=utf-8'); class LogException e ...
- js 创建书签小工具之理论
我们一直在寻找增加浏览体验的方法,有的方法众所周知,有的则鲜为人知.我原本认为书签小工具属于后者,非常令人讨厌的东西.令我非常懊恼的是我发现在这个问题上我完全是错误的.它并不是令人厌烦的,而是以用户为 ...
- PHP IDE phpstorm 常用快捷键
PHP IDE phpstorm 常用快捷键 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了PHP IDE phpstorm 常用快捷键,本文分别列出了mac系统和Win ...
- 利用Excel画柱状图,并且包含最大最小值
如何利用Excel画出如上样式的图? 1.绘制柱状图.如何绘制柱状图,操作非常简单,选中数据,点击合适的图表样式即可. 2.添加误差线.选中已绘制好的图,添加误差线.如果误差线没有出现,可以使用”更多 ...
- Java中同步
解决资源共享的同步操作,有两种方法:一是同步代码块,二是同步方法. 在需要同步的代码块加上synchronized关键字, 同步代码块时必须指定一个需要同步的对象,但一般都是将当前对象(this)设置 ...
- MySQL- 锁(1)
锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数 ...
- 理解tornado
计算密集型:多进程 IO密集型:多线程 能产生IO阻塞的情况很多,比如网络通讯.磁盘读写.当发生阻塞时,CPU是闲置的,此时如果就一个线程就没法处理其他事情了. 所以对于含有IO阻塞的环境,多线程 ...
- jade复用
jade复用说白了就是模板的继承. 使用 block 标识符,设置一个可修改的代码片段 layout.jade doctype html html head block title title Def ...
- [LeetCode] Combinations (bfs bad、dfs 递归 accept)
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...
- 使用Areas分离ASP.NET MVC项目
为什么需要分离? 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际 ...