0 0

百度了很久没找到事例,就是就Jquery ajax success(data)返回的data数据,怎么取出实体类30


琢磨了很久,服务器端打算用json插件把实体类数据转换成json数据,好像也只能是用插件了吧
客户端script的代码是这样

$("#modelname").blur(function(){
var temp=$(this).val();
$.post(
urladdress,
{
message:temp
},
function modelmethod(data){
var model=data.model;

$("#number").val(model.number);
$("#year").val(model.year);
$("#factory").val(model.factory);
$("#_package").val(model._package);

//$("#number").val(data);
},"html"
);
});


看见有一个设计是第一个输入框输入身份证,服务器检索数据,返回对应实体类数据,将各属性信息填到每个对应属性的输入框里。

现在遇到的问题是怎么从success(data)的data数据中得到实体类,如果$.post(url,data,success(data),"html");
换成$.post(url,data,success(data),"json");success(data)就不执行了


附上实例,谢谢各位兄弟帮忙看看

问题补充:之前去实体类问题已经解决,问题在于服务器要求传的是json格式的字符串就OK了,手动写了实体类的json格式字符串,解决了,现在有一个新麻烦就是页面传一个json格式的字符串,是实体类的json格式的字符串,如{"custom":{"id":"123","name":"zhangsan","age":"23"}},JAVA后台request.getParameter("custom")会显示为null,如果传的json非实体类,如{"custom":"客户"}是可以获取的,求正确的获取方法
2014年10月06日 16:02

7个答案 按时间排序 按投票排序

0 0

采纳的答案

$.post( 
	urladdress, 
	{ 
	message:temp 
	},
改成这样的:
$.post( 
	urladdress, 
	{"id":123,"name":"zhangsan","age":23},


这样通过request.getParameter("id");
request.getParameter("name");
request.getParameter("age");
来获取数据,再new一个Model设置进去就可以了。

2014年10月07日 17:38
0 0

页面的JSON变为字符串,后台获取字符串之后再转为实体。

2014年10月08日 18:03
0 0

也可以这么写:

$.post(
				urladdress,
				{
	// 要把数据用单引号包着,当作字符串处理,而不是对象			message:'{"id":123,"year":"2015","factory":23}'
				},


然后可以通过jackson自动把json转换weiModel对象:
Model requestModel = mapper.readValue(req.getParameter("message"), Model.class);
		System.out.println(requestModel);

2014年10月07日 17:57
0 0

刚才的java代码没有格式化,看这个吧。

package com.action;

import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.pojo.Model;

public class ModelAction extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println("����get����");
		System.out.println(req.getParameter("message"));
		PrintWriter out = resp.getWriter();
		out.print("[\"bss100\",\"bss101\",\"2sc9999\"]");
		//resp.getOutputStream().print("[\"bss100\",\"bss101\"]");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println("����post����");
		System.out.println(req.getParameter("message"));
		Model model=new Model();
		model.setNumber(500);
		model.setFactory("NEC");
		model.set_package("DIP");
		model.setYear("01");
		
		////////////////////////改的地方/////////////////////////////////
		ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(model);
        
        PrintWriter out = resp.getWriter();
        out.print(json);
        ///////////////////////////////////////////////////////////////
        
		//resp.getOutputStream().print("[\"bss100\",\"bss101\"]");
	}
	
}

2014年10月07日 12:14
0 0

不能在java代码中直接输入对象到相应中,应该先把对象转换为json字符串,再输出到http响应中,可以用jackson来把对象转换为json字符串。

引用
package com.action;

import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.pojo.Model;

public class ModelAction extends HttpServlet {

/**
*
*/
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("����get����");
System.out.println(req.getParameter("message"));
PrintWriter out = resp.getWriter();
out.print("[\"bss100\",\"bss101\",\"2sc9999\"]");
//resp.getOutputStream().print("[\"bss100\",\"bss101\"]");
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("����post����");
System.out.println(req.getParameter("message"));
Model model=new Model();
model.setNumber(500);
model.setFactory("NEC");
model.set_package("DIP");
model.setYear("01");

///////////////////////改的地方/////////////////////////
ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(model);
       
        PrintWriter out = resp.getWriter();
        out.print(json);
/////////////////////////////////////////////////////
       
//resp.getOutputStream().print("[\"bss100\",\"bss101\"]");
}

}


另外servlet返回的数据已经是model对象了,不用通过var model=data.model来获取了。
直接用就可以了。
$("#number").val("200");
					$("#year").val(model.year);
					$("#factory").val(model.factory);
					$("#_package").val(model._package);

2014年10月07日 12:01
0 0

$.post(url,data,success(data),"html");
url:代表请求路径
data:代表参数信息
success(data):代表执行后返回调用函数信息
html或者json代表:格式
你post请求后应该有个success的函数,在函数内部你在进行得到数据信息
$.post(url,data,success(data),"html");
function success(data){
  alert(data);
}

2014年10月07日 08:42
0 0

返回数据格式有问题

2014年10月06日 22:07

相关推荐

    jquery+ajax例子

    在IT行业中,jQuery和Ajax是两个非常重要的技术,它们在构建动态、交互性强的Web应用程序时发挥着关键作用。jQuery是一个高效、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。Ajax...

    自己写的Jquery form ajax 事例

    标题 "自己写的Jquery form ajax 事例" 涉及到的是使用jQuery库进行表单数据异步提交(AJAX)的实践。在Web开发中,jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。在本...

    Ajax事例、Ajax实例、ajax应用

    **Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,提升了用户体验,尤其是在网页应用中...

    jquery各种效果demo事例

    jQuery的`.ajax()`函数是进行异步数据请求的核心,可以轻松地与服务器进行JSON、XML或其他格式的数据交换。`.getJSON()`和`.getScript()`分别用于获取JSON数据和JavaScript脚本,`.load()`则用于局部刷新页面元素。...

    ajax事例

    这个“ajax事例”很适合初学者作为学习起点,它将帮助理解Ajax的工作原理及其在实际Web开发中的应用。** **一、Ajax的基本概念** 1. **异步通信**:Ajax的核心特性是异步,它允许网页在不刷新的情况下与服务器交换...

    Ajax二级联动事例

    当用户在前端执行某个操作(如选择一个下拉列表项)时,JavaScript会触发Ajax请求,向服务器发送数据,然后服务器处理这些数据并返回响应。最后,JavaScript根据服务器返回的数据更新页面的特定部分,而不需要刷新...

    JQuery验证框架及事例

    **jQuery验证框架及事例** jQuery是一个强大的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作以及Ajax交互。在本资源包中,我们重点关注的是jQuery在表单验证和分页方面的应用。 **一、jQuery验证框架**...

    AJAX实例使用举例

    当用户触发一个AJAX请求时,JavaScript代码创建XMLHttpRequest实例,然后通过这个实例向服务器发送请求,接收响应,并处理返回的数据。 ### 2. 创建XMLHttpRequest对象 在JavaScript中,创建XMLHttpRequest对象...

    jquery EasyUI 使用事例

    jQuery EasyUI 是一款基于 jQuery 的前端开发框架,它简化了Web界面开发的复杂性,提供了大量的可重用组件,如对话框、表格、菜单、按钮等,极大地提升了开发效率并降低了开发成本。EasyUI 的核心理念是“简单易用”...

    (附数据库脚本)jQuery Ztree实例

    **jQuery Ztree 实例详解** jQuery Ztree 是一个基于 jQuery 的强大的树形插件,它提供了丰富的树状视图功能,适用于多种应用场景,如文件管理、组织结构展示、导航菜单等。在这个实例中,我们已经结合了数据库脚本...

    jquery小型事例项目

    这个里面的例子 很适合初学者来体验jquery的强大之处,现在我把这个项目贴出来,和大家一起分享,下载后到各个浏览器上运行都兼容,希望能够帮助到各位!

    ajax事例演习(有错情报喊)

    这个“ajax事例演习(有错情报喊)”可能是一个练习项目,旨在帮助开发者深入理解和应用Ajax技术。下面将详细阐述Ajax的核心概念、工作原理以及如何实现一个简单的Ajax请求。 Ajax的核心概念: 1. 异步通信:Ajax的...

    php+mysql+jqury+ajax+mvc+单例模式事例

    结合以上知识点,"php+mysql+jqury+ajax+mvc+单例模式事例"是一个适合初学者的项目,它可能包含了一个简单的MVC框架,使用PHP处理后端逻辑,MySQL存储数据,jQuery增强前端交互,并利用Ajax实现无刷新的数据通信。...

    ajax事例源码

    Ajax的核心特性就是异步数据交换,这意味着用户可以继续浏览网页,而后台则在处理请求和接收响应。这提升了用户体验,因为页面不会因为等待服务器响应而冻结。 2. **JavaScript基础**: 在Ajax中,JavaScript扮演...

    AJAX事例

    在实际开发中,我们还可能会使用到一些库和框架,如jQuery的`$.ajax()`方法,或者现代的Fetch API,以及前端框架如React、Vue中的集成解决方案,这些都极大地简化了AJAX的使用。了解和掌握AJAX技术,是成为一名优秀...

    ajax事例js

    在"ajax事例js"这个主题中,我们可以通过分析提供的源代码来深入理解Ajax的工作原理和应用。这些文件可能包含了实现不同功能的Ajax实例,如特效(effects.js)、拖放操作(dragdrop.js)、浏览器兼容性处理(hacks...

    Ajax制作百度搜索提示

    Ajax制作百度搜索提示,vs2010下使用.压缩包里已经装有插件.项目事例,具有数据库(SqlServer2008下使用).请在App_Code\GetKeywords.cs文件里修改数据库连接....本项目仅供参考

    Ajax无刷新技术事例

    在这个例子中,`MyService`是服务器上的Java类,`someMethod`是其公开的可远程调用的方法,`param1`是传递的参数,而回调函数则处理返回的数据。 通过这种方式,开发者可以轻松地构建复杂的、无刷新的Web应用,提高...

    jquery.blockUI完整事例

    《jQuery.blockUI插件的深度解析与应用》 在网页开发中,用户交互体验是至关重要的,尤其是在进行异步操作时,如何优雅地提示用户页面正在处理,避免误操作或重复提交,是开发者需要考虑的问题。jQuery.blockUI插件...

Global site tag (gtag.js) - Google Analytics