springmvc-数据处理
数据处理,就是处理前后端传递的数据。
直接来个小案例解释
同样的,构建项目如之前的项目一般,我这里就省略了,就列出不一样的地方
多建一个实体类
package pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
private int age;
}
controller控制类
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import pojo.User;
@Controller
@RequestMapping("c01")
public class controllerDemo01 {
@RequestMapping("/t1")
public String test1(String name, Model model){
System.out.println(name);
model.addAttribute("message",name);
return "test";
}
@RequestMapping("/t2")
public String test2(@RequestParam("username") String username, Model model){
System.out.println(username);
model.addAttribute("message",username);
return "test";
}
@RequestMapping("/t3")
public String test3(User user, Model model){
System.out.println(user);
model.addAttribute("message",user);
return "test";
}
}
测试结果:注意地址栏传递的参数
分析:
我使用了Restful风格进行了一波测试
发现了一个问题,传递一个用户对象时,会发生错误。
===> 原因是:@PathVariable不能传递一个对象。所以正确的是将@PathVariable去掉,即
扩展
- Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解;
- ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;
- ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转