SpringWebMVC_ModelAndView-RESTful

ModelAndView

@RequestMapping("/modelAndView")
public ModelAndView modelAndView(){
  User user = new User();
  user.setId(3);
  user.setName("王五");
  ModelAndView modelAndView = new ModelAndView();
  modelAndView.addObject("user",user);
  modelAndView.setViewName("show");
  return modelAndView;
}

@RequestMapping("/modelAndView2")
public ModelAndView modelAndView2(){
  User user = new User();
  user.setId(11);
  user.setName("小明");
  ModelAndView modelAndView = new ModelAndView();
  modelAndView.addObject("user",user);
  View view = new InternalResourceView("/show.jsp");
  modelAndView.setView(view);
  return modelAndView;
}

@RequestMapping("/modelAndView3")
public ModelAndView modelAndView3(){
  User user = new User();
  user.setId(12);
  user.setName("张三");
  ModelAndView modelAndView = new ModelAndView("show");
  modelAndView.addObject("user",user);
  return modelAndView;
}

@RequestMapping("/modelAndView4")
public ModelAndView modelAndView4(){
  View view = new InternalResourceView("/show.jsp");
  ModelAndView modelAndView = new ModelAndView(view);
  User user = new User();
  user.setId(4);
  user.setName("mav4");
  modelAndView.addObject("user",user);
  return modelAndView;
}

@RequestMapping("/modelAndView5")
public ModelAndView modelAndView5(){
  User user = new User();
  user.setId(5);
  user.setName("mav5");
  Map<String,User> map = new HashMap<>();
  map.put("user",user);
  ModelAndView modelAndView = new ModelAndView("show",map);
  return modelAndView;
}

@RequestMapping("/modelAndView6")
public ModelAndView modelAndView6(){
  User user = new User();
  user.setId(6);
  user.setName("mav6");
  Map<String,User> map = new HashMap<>();
  map.put("user",user);
  View view = new InternalResourceView("/show.jsp");
  ModelAndView modelAndView = new ModelAndView(view,map);
  return modelAndView;
}

@RequestMapping("/modelAndView7")
public ModelAndView modelAndView7(){
  User user = new User();
  user.setId(7);
  user.setName("mav7");
  ModelAndView modelAndView = new ModelAndView("show","user",user);
  return modelAndView;
}

@RequestMapping("/modelAndView8")
public ModelAndView modelAndView8(){
  User user = new User();
  user.setId(8);
  user.setName("mav8");
  View view = new InternalResourceView("/show.jsp");
  ModelAndView modelAndView = new ModelAndView(view,"user",user);
  return modelAndView;
}

@ModelAttribute

  • 定义一个方法,该方法用来返回要填充到业务数据中的对象。
  • 给该方法添加 @ModelAttribute 注解,该方法不是业务方法。
@RequestMapping("/modelAttribute")
public String modelAttribute(){
    return "show";
}

@ModelAttribute
public User getUser(){
    User user = new User();
    user.setId(1);
    user.setName("张三");
    return user;
}


@ModelAttribute
public void getUser(Model model){
  User user = new User();
  user.setId(1);
  user.setName("张三");
  model.addAttribute("user",user);
}

@ModelAttribute
public void getUser(Map<String,User> map){
  User user = new User();
  user.setId(1);
  user.setName("张三");
  map.put("user",user);
}

session

@RequestMapping("/session")
public String session(HttpServletRequest request){
    User user = new User();
    user.setId(11);
    user.setName("张三");
    request.getSession().setAttribute("user",user);
    return "test";
}

@RequestMapping("/session2")
public String session2(HttpSession session){
    User user = new User();
    user.setId(12);
    user.setName("王五");
    session.setAttribute("user",user);
    return "test";
}

@SessionAttributes

在类定义处添加 @SessionAttributes 注解,只要业务方法中向域对象中存入了模型数据,则 Spring MVC 会自动把它同步到 session 中。

@SessionAttributes(value=“user”)

@SessionAttributes(types=User.class)

Spring MVC 自定义数据类型转换器

package com.southwind.converter;

import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateConverter implements Converter<String, Date> {

    private String pattern;

    public DateConverter(String pattern){
        this.pattern = pattern;
    }

    @Override
    public Date convert(String s) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(this.pattern);
        try {
            return simpleDateFormat.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}
  • springmvc.xml 中配置自定义转换器。
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
  <property name="converters">
    <list>
      <bean class="com.southwind.converter.DateConverter">
        <constructor-arg type="java.lang.String" value="yyyy-MM-dd"></constructor-arg>
      </bean>
      <bean class="com.southwind.converter.StudentConvert"></bean>
    </list>
  </property>
</bean>

<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>

Spring MVC 集成 RESTful 架构

REST:Representational State Transfer 资源表现层状态转换

Resources:资源-URI-网络编程

Representation:资源表现层

State Transfer:状态转换

RESTful 有以下两个特点:

  • URL 传参更加简洁

传统的 URL:http://localhost/8080/test?id=1

RESTful:http://localhost/8080/test/1

  • 完成不同终端之间的资源共享,RESTful 提供了一套规范,不同终端之间只需要遵守该规范,就可以实现数据交互。

RESTful 具体来讲就是 4 种表现形式,HTTP 协议中的四种请求类型(GET、POST、PUT、DELETE)分别对应四种常规操作,CRUD。

  • GET 用来获取资源
  • POST 用来创建资源
  • PUT 用来修改资源
  • DELETE 删除资源






备注:最近来手感,写了个类似Tomcat服务

github地址:https://github.com/cnamep001/my_tomcat.git






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值