视图解析,请求Controller返回的视图类型:

@Controller
@RequestMapping("/test")
public class TestController {
    //正常返回ModelAndView
    @RequestMapping("/modelAndView")
    public ModelAndView retModelAndView(){
        ModelAndView mv = new ModelAndView("hello");
        mv.addObject("msg","正常ModelAndView的返回");
        return mv;
    }

    //返回json视图(json格式的数据)
    @RequestMapping("/jsonView")
    @ResponseBody //通过这个注解声明 返回json格式数据
    public List<Book> returnJsonView() {
        List<Book> list = new ArrayList<>();
        Book book1 = new Book();
        book1.setId(1);
        book1.setName("降龙十八掌");
        book1.setDesc("最难是亢龙有悔");
        list.add(book1);
        Book book2 = new Book();
        book2.setId(2);
        book2.setName("凌波微步");
        book2.setDesc("走为上");
        list.add(book2);
        return list;
    }

    //不做任何操作直接返回视图名称(jsp页面) 前提是要有这个jsp页面
    @RequestMapping("/viewName")
    public String returnViewName() {
        String viewName = "index";
        return viewName;
    }

    //重定向
    @RequestMapping("/redirect")
    public String returnRedirect(){
        //返回值以 redirect: 开头后面跟上url
        return "redirect:/test/jsonView.do";
    }

    //请求转发
    @RequestMapping("/forward")
    public String returnForward(){
        //返回值以 forward: 开头后面跟上url
        return "forward:/test/jsonView.do";
    }

    //不返回视图,只返回状态码
    @RequestMapping("/noView")
    @ResponseStatus(HttpStatus.OK)
    public void returnNoView(){

    }
}

返回json视图需要的jar包:jackson-databind

 

请求方式限定:

    // 请求方式限定 限定post请求方式
    @RequestMapping(value = "/requestMethodPost", method = RequestMethod.POST)
    public ModelAndView requestMethodPost() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("index");//设置视图名字(jsp页面)
        mv.addObject("msg", "requestMethod  method=post");
        return mv;
    }

    //请求方式限定 限定多种请求方式
    @RequestMapping(value = "/requestMethod", method = {RequestMethod.POST, RequestMethod.GET})
    public ModelAndView requestMethod() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("index");//设置视图名字
        mv.addObject("msg", "requestMethod  method=post and get");
        return mv;
    }

 

请求参数获取:

1,获取servlet内置对象(不推荐使用)

    //获取servlet内置对象 不推荐使用
    @RequestMapping("/servletObj")
    public ModelAndView getServletObj(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
        ModelAndView mv = new ModelAndView("servlet_test");// WEB-INF/views/servlet_test.jsp页面
        mv.addObject("request", "我是request===" + request);
        mv.addObject("response", "我是response===" + response);
        mv.addObject("session", "我是session===" + session);
        return mv;
    }
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>${request}</h1>
    <h1>${response}</h1>
    <h1>${session}</h1>
</body>
</html>

 

2,获取PathVariable(占位符)参数

    //获取PathVariable(占位符)参数
    @RequestMapping("/pathVariable/{name}/{code}")
    public ModelAndView getPathVariable(@PathVariable("name") String name, @PathVariable("code") String code) {
        ModelAndView mv = new ModelAndView("index");
        mv.addObject("msg", "占位符映射参数,name=" + name + ",code=" + code);
        return mv;
    }

 

3,获取基本类型数据的请求参数

表单信息:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/test/baseDataTypeParams.do" method="post">
    <table>
        <tr>
            <td>姓名:</td>
            <td><input name="name" value="zhangsan"/></td>
        </tr>
        <tr>
            <td>年龄:</td>
            <td><input name="age" value="20"/></td>
        </tr>
        <tr>
            <td>收入:</td>
            <td><input name="income" value="99999"/></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="提交表单"/></td>
        </tr>
    </table>
</form>
</body>
</html>

controller:

    //获取基本数据类型的请求参数
    @RequestMapping("baseDataTypeParams")
    public ModelAndView getBaseDataTypeParams(@RequestParam("name") String name, @RequestParam("age") int age,
                                              @RequestParam("income") double income) {
        ModelAndView mv = new ModelAndView("index");
        mv.addObject("msg", "name=" + name + ",age=" + age + ",income=" + income);
        return mv;
    }

 

4,获取请求参数并封装成pojo对象

写一个user类:

package zy.com.domain;

public class User {
    private String name;
    private int age;
    private double income;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public double getIncome() {
        return income;
    }

    public void setIncome(double income) {
        this.income = income;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", income=" + income +
                '}';
    }
}
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-26
  • 2021-05-09
  • 2022-12-23
  • 2021-08-29
猜你喜欢
  • 2022-12-23
  • 2021-12-21
  • 2022-12-23
  • 2021-09-23
  • 2021-11-14
  • 2022-12-23
  • 2021-11-20
相关资源
相似解决方案