Spring MVC参数绑定-对象参数
结构图
BookController.java
package org.javaboy.springmvc02.controller;
import org.javaboy.springmvc02.model.Book;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.naming.Name;
/**
* @author 邓雪松 (づ ̄ 3 ̄)づ)
* @create 2021-11-02-19-13
*/
@Controller
@RequestMapping("/book")
public class BookController {
//http://localhost:8080/book/getbook
@RequestMapping("/getbook")
public ModelAndView getBook(){
ModelAndView mv = new ModelAndView("hello");
mv.addObject("name","BookController");
return mv;
}
@GetMapping("/book")
public String book(){
return "addbook";
}
@PostMapping(value = "/addbook",produces = "text/html;charset=utf-8")
@ResponseBody//为了防止找视图
public String addBook(@RequestParam("bookname") String name, String author, Double price){
System.out.println("name = "+name);
return name+">>>"+author+">>>"+price;
}
@PostMapping(value = "/addbook2",produces = "text/html;charset=utf-8")
@ResponseBody//
public String addBook2(Book book){
return book.toString();
}
}
Book.java
package org.javaboy.springmvc02.model;
/**
* @author 邓雪松 (づ ̄ 3 ̄)づ)
* @create 2021-11-03-14-15
*/
public class Book {
private String name;
private Double price;
private Author author;
public void setAuthor(Author author) {
this.author = author;
}
public Author getAuthor() {
return author;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", price=" + price +
", author=" + author +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
}
addbook.jsp
<%--
Created by IntelliJ IDEA.
User: 管 理 员
Date: 2021年11月03日 0003
Time: 13:12:43
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>addbook</title>
</head>
<body>
<h1>添加图书</h1>
<form action="/book/addbook2" method="post">
<table>
<tr>
<td>图书名称</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>图书作者</td>
<td><input type="text" name="author.name"></td>
</tr>
<tr>
<td>作者年龄</td>
<td><input type="text" name="author.age"></td>
</tr>
<tr>
<td>图书价格</td>
<td><input type="text" name="price"></td>
</tr>
<tr>
<td><input type="submit" value="添加"></td>
</tr>
</table>
</form>
</body>
</html>
Author.java
package org.javaboy.springmvc02.model;
/**
* @author 邓雪松 (づ ̄ 3 ̄)づ)
* @create 2021-11-03-14-32
*/
public class Author {
private String name;
private Integer age;
@Override
public String toString() {
return "Author{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
运行效果图
结束