结合Jackson和jquery实现的Ajax

除了在导入jackson的jar包时犯了些错误外,基本还是比较简单的,所以就直接写流程了。

项目结构:

一、获取所需要的jackson的jar包,本项目没有结合maven,前段时间刚刚学习了maven,正好复习一下。借助了另一个使用了maven的项目,在其pom.xml中添加依赖:

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.0</version>
</dependency>


更新此项目的依赖后,到maven本地库中找到下载好的3个jar备用。

当然,也可以直接下载, 需要注意的是下载地址已经更新了,网上找到的很多都是旧版的,浪费了我不少时间。新的下载地址为:http://mvnrepository.com/artifact/com.fasterxml.jackson.core

根据自己的需要找到相应的版本就行了。本实验使用的是2.70版,就是看用的人还不少所以选用的。

二、创建项目 springmvc-ajax,复制之前的入门例子springmvc002中的web.xml和myspring-servlet.xml到本项目的WEB-INF目录下。

myspring-servlet.xml中的内容并无更改,再贴一次:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/mvc
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- springmvc 注解驱动 -->
<mvc:annotation-driven />
<!-- 扫描器 -->
<context:component-scan base-package="com.sunny" />

<!-- 配置视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/pages/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>


三、导入之前下载的3个jackson jar文件,并导入 spring mvc的jar包。

四、在WebRoot目录下创建js目录,并复制一个jQuery.js 到此目录下。

五、在WebRoot的pages目录下创建页面文件 user_list.jsp,内容如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'user_list.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    

<script src="js/jquery-1.11.0.min.js"></script>
<script>
$().ready(function(){
$('#btnDetail').click(function(){
var userId=$('#userId').val();
$.post("userDetail.do",{userId:userId},function(data){
alert(data.userId+" "+data.username+" "+data.age);
},'json');
});
});
</script>
  </head>
  
  <body>
    <input type="text" id="userId" name="userId" />
    <input type="button" value="详情" id="btnDetail"/>
  </body>
</html>


当点击此页面上的详情按钮时,将以ajax方式访问userDetail.do,这个将指向一个Controller,所以下面写一个Controller.

六、编写控制器类UserController以及 实体类 Userinfo

代码:

package com.sunny.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.sunny.po.Userinfo;

@Controller
public class UserController {

@RequestMapping("/userDetail.do")
public @ResponseBody Userinfo getDetail(Integer userId){
return new Userinfo(userId,"小鱼儿",20);
}
}


注意上面这个Controller类,在方法返回值前加上了注解 @ResponseBody ,这个指明Userinfo对象将作为响应内容返回。

据别人的说法,spring 3.1之后,只要在项目 中添加了jackson的jar包后,就已经可以直接使用了,并不需要在配置文件myspring-servlet.xml 中进行配置。这个经过测试确实如此,本实验使用的spring 是4.25版的。

Userinfo类的代码略,该类有3个属性:

public class Userinfo implements Serializable{
private static final long serialVersionUID = -4105734707188223151L;
private int userId;
private String username;
private Integer age;

最后进行测试,项目发布后,在浏览器中访问

点击按钮后:

测试成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xxpr_ybgg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值