126、【JavaEE】【SpringMVC】SpringMVC

2021-10-29  本文已影响0人  yscyber

1、响应的本质

2、Spring MVC 支持的响应的种类

3、页面响应

3.1、返回字符串(逻辑视图名)

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;


@Controller
public class MyRequestController {

    @GetMapping("/jsp/one")
    public String pageResponse() {
        return "one"; // 请求转发
    }

}
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;


@Controller
public class MyRequestController {

    @GetMapping("/jsp/one")
    public String pageResponse() {
        return "forward:one"; // 请求转发
    }

}
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;


@Controller
public class MyRequestController {

    @GetMapping("/jsp/one")
    public String pageResponse() {
        return "redirect:one"; // 请求重定向
    }

}

3.2、ModelAndView

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;


@Controller
public class MyRequestController {

    @GetMapping("/jsp/one")
    public ModelAndView pageResponse() {
        ModelAndView modelAndView = new ModelAndView(); // 方法体中 new 一个 ModelAndView 对象

        modelAndView.setViewName("one"); // /one.jsp
        modelAndView.addObject("name", "Jack");

        return modelAndView;
    }

}
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;


@Controller
public class MyRequestController {

    @GetMapping("/jsp/one")
    public ModelAndView pageResponse(ModelAndView modelAndView) {
// 方法参数中的 ModelAndView 类型可以直接使用
        modelAndView.setViewName("one"); // /one.jsp
        modelAndView.addObject("name", "Jack");

        return modelAndView;
    }

}
SpringMVC-10

4、数据响应

4.1、JSON

4.1.1 @ResponseBody
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString
public class User {

    private Integer id;

    private String name;

}
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody
public class MyRequestController {

    @GetMapping("/json/data")
    // @ResponseBody
    public User jsonResponse() {
        return new User(1, "张三");
    }

}
SpringMVC-9
4.1.2、@RestController
上一篇 下一篇

猜你喜欢

热点阅读