springMVC - Controller

来源:互联网 发布:md5算法c 实现 编辑:程序博客网 时间:2024/04/30 20:19

一、@RequestMapping

  • url 映射
  • 窄化请求映射
  • 限制http 请求方法

二、Controller 方法的类型

  • public ModelAndView zZZ(HttpServletRequest request)

    需要方法结束时,定义ModelAndView,将model和view分别进行设置

  • public String zZZ(Model model)

    如果controller方法返回string,则标识返回逻辑视图.真正的视图(jsp路径)= 前缀 + 逻辑视图名 + 后缀
    页面转发:”forward:queryItems.action”
    重定向:”redirect:queryItems.action”

@RequestMapping("/editItems")    public String editItems(Model model) throws Exception {        ItemsCustom itemsCustom = itemsService.findItemsById(1);        model.addAttribute("itemsCustom", itemsCustom);        return "items/editItems";    }
  • public void zZZ(request, repsonse)

重定向:response.sendRedirect(“url”)
转发:request.getDispatcher(“页面路径”).forward(request,response)
resposne.getWriter().write(“json 串”)

这里写图片描述

三、 参数绑定

  • spring 参数绑定过程
    spring通过converter(转换器) 将keyValue 绑定到方法形参上.

  • 简单类型
    1. 通过@RequestParam 对简单类型的参数的绑定
    2. 也可以不使用@RequestParam,不过需要保证 request 传入参数的名称和colltroller 方法的形参名称一致.
    3. 通过 required 指定参数是否必须要传入,如果设置为true,没有参数传入则,报错.

  • pojo 绑定
    参数名字和pojo中的成员变量名字一致,即可绑定.

  • post 乱码
    在web.xml 中添加filter
   <!-- post乱码过虑器 -->    <filter>        <filter-name>CharacterEncodingFilter</filter-name>        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param-name>            <param-value>utf-8</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>CharacterEncodingFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>

  • 自定义绑定
    1. 适配器上定义一个 conversion-service
    2. 创建 conversionService 的bean
    3. 创建一个converter 类,实现Converter接口即可.
<mvc:annotation-driven conversion-service="conversionService"/>......<!-- 自定义参数绑定 -->    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">        <!-- 转换器 -->        <property name="converters">            <set>                <!-- 日期类型转换 -->                <bean class="club.lemos.ssm.controller.converter.CustomDateConverter"/>            </set>        </property>    </bean>
//Converter类public class CustomDateConverter implements Converter<String,Date>{    @Override    public Date convert(String source) {            //实现 将日期串转成日期类型(格式是yyyy-MM-dd HH:mm:ss)             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");            try {            //转成直接返回            return simpleDateFormat.parse(source);        } catch (ParseException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        //如果参数绑定失败返回null        return null;    }}
0 0
原创粉丝点击