package com.kkb.controller;
import com.kkb.VO.QueryVO;
import com.kkb.pojo.Team;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Controller
@RequestMapping("param")
public class ParamController {
/*
Day1026测试:处理器方法的参数-1
直接使用方法的参数逐个接收
知识点:
1.在处理器方法中加入的参数要跟前端界面传回的名称相同,否则无法接受相应参数
*/
@RequestMapping("add.do")
public ModelAndView add(Integer teamId,String teamName,String teamLocation){
System.out.println(teamId);
System.out.println(teamName);
System.out.println(teamLocation);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("ok");
return modelAndView;
}
/*
Day1026测试:处理器方法的参数-2
使用对象接收参数
知识点:
1.前端界面传入的参数名称必须与对象的各个参数名称相同,否则无法接受相应参数
*/
@RequestMapping("add02.do")
public ModelAndView add02(Team team){
System.out.println(team);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("ok");
return modelAndView;
}
/*
Day1026测试:处理器方法的参数-3
请求参数和方法名称的参数不一致
知识点:
1.前端界面传入的参数名称必须与@RequestParam中的value值相同,否则无法接受相应参数,并且会报错400,如若配置required=false,
将会在找不到对应参数是赋值为null,与前两种相似.required默认为true
*/
@RequestMapping("add03.do")
public ModelAndView add03(@RequestParam(value = "teamId",required = false) Integer teamId,
@RequestParam("teamName") String teamName,
@RequestParam("location") String teamLocation){
System.out.println(teamId);
System.out.println(teamName);
System.out.println(teamLocation);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("ok");
return modelAndView;
}
/*
Day1026测试:处理器方法的参数-4
使用HttpServletRequest 对象获取参数
知识点:
1.与JavaWeb使用HttpServletRequest方法相同
*/
@RequestMapping("add04.do")
public ModelAndView add04(HttpServletRequest request){
System.out.println("add04--------");
System.out.println(request.getParameter("teamId"));
System.out.println(request.getParameter("teamName"));
System.out.println(request.getParameter("location"));
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("ok");
return modelAndView;
}
/*
Day1026测试:处理器方法的参数-5
直接使用URL地址传参,例如http://localhost:8088/param/123/testName/testLocation/add05.do
知识点:
1.@PathVariable中的value值必须与RequestMapping中的参数名称相同
*/
@RequestMapping("{id}/{name}/{location}/add05.do")
public ModelAndView add05(@PathVariable("id") Integer teamId,
@PathVariable("name") String teamName,
@PathVariable("location") String teamLocation){
System.out.println("add05--------");
System.out.println(teamId);
System.out.println(teamName);
System.out.println(teamLocation);
return new ModelAndView("ok");
}
/*
Day1026测试:处理器方法的参数-6
获取日期类型的参数
知识点:
1.因为从前端获取到的值是字符串类型,无法转换成Date类型,需要在Team类中的createTime中加上注解@DateTimeFormat(pattern = "yyyy-MM-dd")
*/
@RequestMapping("add06.do")
public ModelAndView add06(Team team){
System.out.println(team);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("ok");
return modelAndView;
}
/*
Day1026测试:处理器方法的参数-7
获取数组类型的参数
知识点:
1.若需要从前端获取相同名称的数组,只用将数组类型的参数输入即可,与逐个接收参数的方式相似
2.也可从HttpServletRequest中用getParameterValues()的方法来获取数组
*/
@RequestMapping("add07.do")
public ModelAndView add07(String[] teamName,HttpServletRequest request){
//方式一:
System.out.println("test1-------------");
for (String s : teamName) {
System.out.println(s);
}
//方式二:
String[] teamNames = request.getParameterValues("teamName");
System.out.println("test2-------------");
for (String name : teamNames) {
System.out.println(name);
}
/*ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("ok");*/
return new ModelAndView("ok");
}
/*
Day1026测试:处理器方法的参数-8
获取集合类型的参数
知识点:
1.对于简单集合只需要添加注解@RequestParam即可完成对集合的接收
*/
@RequestMapping("add08.do")
public ModelAndView add08(@RequestParam("teamName") List<String> teamName){
for (String s : teamName) {
System.out.println(s);
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("ok");
return modelAndView;
}
/*
Day1026测试:处理器方法的参数-9
获取集合类型的参数2
知识点:
1.对于对象类型的参数,目前Spring还不支持直接接收,需要通过封装类的形式来间接完成参数的接收,以此通过对其属性的赋值来完成对象的建立
*/
@RequestMapping("add09.do")
public ModelAndView add09(QueryVO ov){
List<Team> teamList = ov.getTeamList();
for (Team team : teamList) {
System.out.println(team);
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("ok");
return modelAndView;
}
}
SpringMVC处理器方法的参数
最新推荐文章于 2024-03-22 12:17:40 发布