1.1 接受页面数据
@RequestMapping("/add")
public String add(Bookinfo bookinfo) {
//调用业务层添加bookSerice.save(bookinfo);
System.out.println(bookinfo.getBookid());
System.out.println(bookinfo.getBookname());
System.out.println(bookinfo.getBookprice());
System.out.println(bookinfo.getBookimg());
return "index";
值得注意的是
- .放到()里面的任何对象会自动实例化(new)
- 自动DI/IOC(相当于Servlet中写的request.getParameter("bookid"))
- 会自动共享数据request.setAttribute("bookinfo",bookinfo)
- 这个共享只会共享页面中输入进来的数据,比如你只输入了两个字段,其它字段是不共享的
- 如果传入的不是javabean中的对象,是基本数据类型不会自动共享
1.2 接收页面数据,以变量的方式接 页面中参数的名字与变量中保持一致
@RequestMapping("/add2")
public String add2(String bookid,String bookname,double bookprice,String bookimg) {
//调用业务层添加bookSerice.save(bookid,bookname,bookprice,bookimg);
System.out.println(bookid);
System.out.println(bookname);
System.out.println(bookprice);
System.out.println(bookimg);
return "index";
}
1.3 接收页面数据,使用原生request,response
@RequestMapping("/add3")
public String add3(HttpServletRequest request,HttpServletResponse response) {
String bookid = request.getParameter("bookid");
String bookname = request.getParameter("bookname");
double bookprice = Double.parseDouble(request.getParameter("bookprice"));
String bookimg = request.getParameter("bookimg");
System.out.println(bookid);
System.out.println(bookname);
System.out.println(bookprice);
System.out.println(bookimg);
1.4 接收页面数据,修改参数名字
@RequestMapping("/page")
public String page(@RequestParam("page") int pageIndex) {
System.out.println("页数:"+pageIndex);
return "index";
}
注意:@RequestParam("page"),指定页面参数的名字为page 例如 页面传值
如果不写@RequestParam("page") 接受参数必须写 page
2. 对象注解
@RequestMapping(value="/add4",method=RequestMethod.GET)//设定请求方式为Get,post不能访问
public String add4(@ModelAttribute("book") Bookinfo bookinfo) {
System.out.println(bookinfo.getBookid());
System.out.println(bookinfo.getBookname());
System.out.println(bookinfo.getBookprice());
System.out.println(bookinfo.getBookimg());
return "index";
// return "redirect:../index.jsp";
}
@ModelAttribute("book"),这个注解的意思是:request.setAttribute("book",bookinfo);
@ModelAttribute,不写默认这个注解,request.setAttribute("bookinfo",bookinfo);
默认转发 return "index" 等价于 request.getRequestDispatcher("/index.jsp").forward(request,response);
3.session共享
默认共享为request,如果想让这个bookinfo共享范围提升为session的,在类的最后面加上@SessionAttributes
4.1 从数据库中查询一个集合出来,并传到JSP页面去
@RequestMapping("/query")
public String query(ModelMap map) {
map.addAttribute("bookinfos", bookinfoService.getBookinfos());
return "index";
}
4.2 从数据库查询一个对象出来,并传到JSP
@RequestMapping("/query2")
public String query2(ModelMap map,Bookinfo bookinfo) {
map.addAttribute("bookinfo", bookinfoService.getBookinfoById());
return "index";
}
4.3从数据库查询一个对象出来,并传到JSP,用Map
@RequestMapping("/query3")
public String query2(Map map,Bookinfo bookinfo) {
map.put("bookinfo", bookinfoService.getBookinfoById());
return "index";
}
4.3 用map穿一个参数到JSP页面
@RequestMapping("/query3")
public String query2(Map map,int pageIndex) {
map.put("pageIndex", pageIndex);
return "index";
}
5. @Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中 (通俗来说就是传数据到HTML页面 用json接收)
使用需要导入相关架包
5.1
传字符串到页面
@RequestMapping("/json1")
@ResponseBody
public String json1() {
return "success";
}
传对象到页面
@RequestMapping("/json2")
@ResponseBody
public Bookinfo json2() {
bookinfo.setBookid("22");
bookinfo.setBookname("mingzi");
bookinfo.setBookprice(520.0);
bookinfo.setBookimg("book.img");
return bookinfo;
}
传集合到页面
@RequestMapping("/json")
@ResponseBody
public List<Bookinfo> json() {
return bookServiceimpl.getBooks();
}
页面接值
页面使用jquery需要导入相应的架包 可直接放在WebContent目录下 或者建立一个专门的文件夹
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSON的解析</title>
<script type="text/javascript" src="jquery-1.7.js"></script>
<script type="text/javascript">
$(function() {
//$("#aaa").html("你好呀");
//$(".bbb").text("我很好");
$("#btnMessage").click(function() {
//alert("谁点我");
$.ajax({
type:"POST",
url:"bookinfo/json2.action",
success:function(data) {
//alert("从服务器传来的数据为" + data.bookname);
$("#msg").html("从服务器异步返回的数据变量是:"+data.bookname);
}
})
});
var str=""
$("#btnMessage1").click(function() {
$.ajax({
type:"POST",
url:"bookinfo/json.action",
success:function(data) {
$.each(data,function(index,bookinfo){
str += bookinfo.bookid+" "+bookinfo.bookname+" "+bookinfo.bookprice+" "+ bookinfo.bookimg+"<br/>";
});
$("#msg").html(str);
str = ""
}
})
})
})
</script>
</head>
<body>
<div class="bbb" id="aaa"></div>
<input type="button" value="点击我一下嘛" id="btnMessage"/>
<input type="button" value="点击我一下嘛" id="btnMessage1"/>
<div id ="msg">
</div>
</body>
</html>