由于之前我写过几篇关于如何搭建SpringMVC项目的日志,故在本文中不在写各种配置怎么写。只写涉及到处理ajax请求的代码。如果有想了解SpringMVC项目怎么搭建的朋友,请选择如下合适你的链接进去交流。
好,正文开始
Controller的代码
package com.action; import java.io.UnsupportedEncodingException; import java.util.List; import javax.annotation.Resource; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.SessionAttributes; import com.bean.User; import com.service.IUserService; /** * action层我也是用注解配的,这里面的注解@RequestMapping的具体作用见上一篇SpringMVC入门笔记 * @author 百木森森 * */ @Controller @RequestMapping("testPath") public class TestAction { @Resource private IUserService userService; @RequestMapping("ajaxTest") @ResponseBody public ModelMap ajaxTest(){ System.out.println("进ajax的action了"); ModelMap model=new ModelMap(); model.addAttribute("key", "I'm value"); return model; } }
网页的写法
<%@ page language="java" contentType="text/html; charset=UTF-8" 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" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="<%=path%>/js/jquery-1.10.2.js"></script> <script type="text/javascript"> $(function(){ alert("ajax一级准备!"); $.ajax({ url:"<%=path%>/testPath/ajaxTest.action", type:"post", success:function(data){ alert(data.key); } }) }) </script> <title>Insert title here</title> </head> <body> <h1>success!!!</h1><br/> </body> </html>
控制台打印结果
页面加载后的效果
以上是一个非常简单的ajax操作,不包含json的传值,下面贴一个包含了json传值的代码
Controller中的代码
@RequestMapping("queryuseradvice") @ResponseBody public ModelMap queryUserAdvice(ModelMap model, @RequestParam int pageNo, @RequestParam int pageSize){ int count=this.qyjUserAdviceService.queryCount();//从数据库查满足条件的数据的数量 int totalPage=count%pageSize==0?count/pageSize:count/pageSize+1;//计算共有几页 //将总页数和所有要传回页面的数据集合存入model中 model.addAttribute("totalPage", totalPage); model.addAttribute("adviceList", this.qyjUserAdviceService.queryAdvice(pageNo, pageSize)); return model; }
js代码(只包含ajax部分)
function queryAdviceBy(pageNo, pageSize) { $("#none").hide(); $.ajax({ type:"post", url:"adviceTest/queryuseradvice", cache:false, dataType:"json", data:{ pageNo:pageNo, pageSize:pageSize }, success:function(data) { //省略回调函数的内容 //想得到Controller中传回的值得话像如下这样做 data.totalPage data.adviceList } }); }