参考入门案例:Spring MVC入门案例!!!-CSDN博客
在index.jsp中定义超链接:
接收基本数据类型
编写AccountController:
@Controller
@RequestMapping("/account")
public class AccountController {
@GetMapping("/findAccount7")
public String findAccount7(String name, Integer age, Model model) throws UnsupportedEncodingException {
//get请求解决乱码问题
byte[] bytes = name.getBytes(StandardCharsets.ISO_8859_1);
name = new String(bytes, StandardCharsets.UTF_8);
model.addAttribute("msg", "通过url传参:" + name + "---" + age);
return "success";
}
}
实体类:Account
package com.by.pojo;
import java.io.Serializable;
import java.util.Date;
public class Account implements Serializable {
private Integer id;
private String name;
private Float money;
private Address address;
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
//省略get set toString方法
@Override
public String toString() {
return "Account{" +
"id=" + id +
", name='" + name + '\'' +
", money=" + money +
", address=" + address +
", date=" + date +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Float getMoney() {
return money;
}
public void setMoney(Float money) {
this.money = money;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
实体类:Address
package com.by.pojo;
import java.io.Serializable;
public class Address implements Serializable {
private String provinceName;
private String cityName;
//省略get set toString方法
@Override
public String toString() {
return "Address{" +
"provinceName='" + provinceName + '\'' +
", cityName='" + cityName + '\'' +
'}';
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
}
编写AccountController
package com.by.controller;
import com.by.pojo.Account;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/account")
public class AccountController {
@RequestMapping("/saveAccount")
public String saveAccount(Account account, Model model){
model.addAttribute("msg", account);
return "success";
}
}
在index.jsp中添加表单:
在index.jsp中添加超链接
restful
在AccountController中编写方法:通过在参数列表中使用@PathVariable
/*
* Copyright (c) 2020, 2024, All rights reserved.
*
*/
package com.by.controller;
import com.by.pojo.Account;
import com.by.pojo.JsonStatus;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
/**
* Project: SpringMVC - AccountController
* Powered by scl On 2024-01-09 10:07:21
* 描述:
*
* @author 孙臣龙 [[email protected]]
* @version 1.0
* @since 17
*/
@Controller
@RequestMapping("/account")
public class AccountController {
@GetMapping("/findAccount10/{name}/{age}")
public String findAccount10(@PathVariable String name, @PathVariable Integer age, Model model) {
byte[] bytes = name.getBytes(StandardCharsets.ISO_8859_1);
name = new String(bytes, StandardCharsets.UTF_8);
model.addAttribute("msg", "restful:" + name + ":" + age);
return "success";
}
}
在Restful之前的操作:
http://127.0.0.1/user/query?id=1 根据用户id查询用户数据
http://127.0.0.1/user/save 新增用户
http://127.0.0.1/user/update?id=1 修改用户信息
http://127.0.0.1/user/delete?id=1 删除用户信息
RESTful用法:
http://127.0.0.1/user/1 GET 根据用户id查询用户数据
http://127.0.0.1/user POST 新增用户
http://127.0.0.1/user PUT 修改用户信息
http://127.0.0.1/user/1 DELETE 删除用户信息
RESTful总结:
Restful风格就是请求url统一,根据不同的请求方式,请求不同的后台方法。如果需要携带参数,在url上使用/{}占位符。
编写controller
@Controller
@RequestMapping("/account")
public class AccountController {
@RequestMapping("/findAccount8")
public String findAccount8(HttpServletRequest request,
HttpServletResponse response){
String username = request.getParameter("name");
String age = request.getParameter("age");
request.setAttribute("msg",username+" "+age);
return "success";
}
}
在index.jsp里面定义超链接
Servlet接收参数