我是靠谱客的博主 活力草莓,最近开发中收集的这篇文章主要介绍SpringMVC 学习笔记07:如何处理前端提交的数据以及将处理后的数据发送到前端的三种方式,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一、处理提交数据
1.1 提交的域名称和处理方法的参数名一致
提交数据 : http://localhost:8080/Springmvc_04_controller_war_exploded/user/t1?name=Bob
处理方法:
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/user")
public class UserController {
//localhost:8080/项目名/user/t1?name = XXX;
@GetMapping("/t1")
public String test1(String name, Model model){
//1.接收前端参数
System.out.println(name);
//2.将返回的结果传递给前端
model.addAttribute("msg",name);
//3.跳转视图
return "hello";
}
}
跳转到hello.jsp页面,并输出:Bob
1.2 提交的域名称和处理方法的参数名不一致
提交数据 : http://localhost:8080/Springmvc_04_controller_war_exploded/user/t1?username=Bob
处理方法:
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/user")
public class UserController {
//localhost:8080/项目名/user/t1?name = XXX;
@GetMapping("/t2")
public String test1(@RequestParam("username") String name, Model model){
//1.接收前端参数
System.out.println(name);
//2.将返回的结果传递给前端
model.addAttribute("msg",name);
//3.跳转视图
return "hello";
}
}
跳转到hello.jsp页面,并输出:Bob
1.3 提交的是一个对象
User.class类:
package pojo;
public class User {
private int id;
private String name;
private String age;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + ''' +
", age='" + age + ''' +
'}';
}
}
UserController:
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import pojo.User;
@Controller
@RequestMapping("/user")
public class UserController {
//localhost:8080/项目名/user/t1?name = XXX;
@GetMapping("/t3")
public String test1(User user, Model model){
//1.接收前端参数
System.out.println(user);
//2.将返回的结果传递给前端
model.addAttribute("msg",user);
//3.跳转视图
return "hello";
}
}
输出:User{id=0, name=‘null’, age=‘null’}
说明:如果使用对象的话,前端传递的参数名和对象名必须一致,否则就是null。
二、数据显示到前端
2.1 通过ModelAndView
public class ControllerTest1 implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//返回一个模型视图对象
ModelAndView mv = new ModelAndView();
mv.addObject("msg","ControllerTest1");
//保存数据
mv.setViewName("test");
//跳转视图
return mv;
}
}
2.2 通过ModelMap
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name, ModelMap model){
//封装要显示到视图中的数据
//相当于req.setAttribute("name",name);
model.addAttribute("name",name);
//保存数据
System.out.println(name);
return "hello";
//跳转视图
}
2.3 通过Model
@RequestMapping("/ct2/hello")
public String hello(@RequestParam("username") String name, Model model){
//封装要显示到视图中的数据
//相当于req.setAttribute("name",name);
model.addAttribute("msg",name);
//保存数据
System.out.println(name);
return "test";
//跳转视图
}
三、对比
1.Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解;
2.ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;
3.ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。
最后
以上就是活力草莓为你收集整理的SpringMVC 学习笔记07:如何处理前端提交的数据以及将处理后的数据发送到前端的三种方式的全部内容,希望文章能够帮你解决SpringMVC 学习笔记07:如何处理前端提交的数据以及将处理后的数据发送到前端的三种方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复