springmvc-数据处理

166 阅读1分钟

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";
    }

}

测试结果:注意地址栏传递的参数

image.png

image.png

image.png

image.png

分析:

image.png

我使用了Restful风格进行了一波测试

image.png

发现了一个问题,传递一个用户对象时,会发生错误。

===> 原因是:@PathVariable不能传递一个对象。所以正确的是将@PathVariable去掉,即

image.png

扩展

  1. Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解;
  2. ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;
  3. ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转