web框架之springmvc参数绑定

在spring框架中,参数绑定指的是通过处理器方法的形参,接收到请求的url或者表单中的参数数据。

分为:

  • 默认支持参数类型
  • 简单参数类型
  • pojo参数类型
  • pojo包装类型
  • 自定义参数类型
  • 数组参数类型
  • list参数类型

一、默认支持参数类型

1. HttpServletRequest
作用:通过request,获取请求的参数数据。

2. HttpServletResponse
作用:通过response,执行响应。

3. HttpSession
作用:通过session,获取和保存会话域数据。

4. Model/ModelMap
说明:

    1)Model是一个接口,是模型,用于封装响应的模型数据

    2)ModelMap是实现类,使用Model和使用ModelMap,效果是一样的

    3)使用Model封装响应的模型数据,就可以不使用ModelAndView,页面视图可以使用字符串    响应。

二、简单参数类型

常见简单参数类型:

类型

包装类型

基础类型

整型

Integer

int

长整型

Long

long

单精度浮点型

Float

float

双精度浮点型

Double

double

字符串

String

String

注意事项:使用简单参数类型绑定参数,推荐使用简单类型的包装类型(Integer),不建议使用简单类型的基础类型(int)。原因是基础类型不能为null值,如果不传递会报异常。

三、pojo参数类型

如果一次请求中参数比较多,使用pojo对象进行绑定,会比较方便。

注意:中文乱码问题

spring框架提供了字符集编码过滤器(CharacterEncodingFilter),解决post请求的中文乱码。

在web.xml配置字符集编码过滤器:

  <!--配置字符集编码的过滤器-->
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

    <!--指定使用的字符集编码:UTF-8-->
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>

  </filter>

  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <!--配置所有请求都经过字符集编码过滤器处理-->
    <url-pattern>/*</url-pattern>
  </filter-mapping>

四、pojo包装类型

用于接收综合查询条件(即复杂的查询条件)。

 

五、自定义参数类型

说明:在实际项目中,比如日期类型或者货币数据,由于格式多不固定。springmvc框架不知道我们需要的格式,只能我们根据业务需求来转换。


1、需要实现Converter接口

public class DateConverter implements Converter<String,Date>{

    /**
     * 实现转换逻辑
     * @param s
     * @return
     */
    public Date convert(String s) {
        // 2019-02-15 08:22:30
        // 定义日期格式化对象
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // 转换数据
        try {
            // 转换成功,直接返回
          return   format.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        // 转换失败,返回null
        return null;
    }
}


2、在springmvc.xml配置自定义转换器

<!--注解驱动方式配置处理器映射器、处理器适配器,说明:
    1.导入mvc名称空间
    2.配置<mvc:annotation-driven/>
    3.它等于同时配置了RequestMappingHandlerMapping/RequestMappingHandlerAdapter
-->
<mvc:annotation-driven conversion-service="conversionService"/>

<!-- 配置自定义转换器 -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
    <property name="converters">
        <set>
            <bean class="cn.itheima.converter.DateConverter"/>
        </set>
    </property>
</bean>

六、数组参数类型

说明:比如实现某数据的批量删除。一次接收多个Id参数数据,需要使用数据参数类型。

 

七、list参数类型

说明:比如在实现某数据批量修改。一次接收多个对象数据,需要使用list参数类型

发布了18 篇原创文章 · 获赞 19 · 访问量 5338

猜你喜欢

转载自blog.csdn.net/weixin_44586883/article/details/87223394