Spring MVC控制器方法参数类型

HttpServletRequest Spring会自动将 Servlet API 作为参数传过来

HttpServletResponse

InputStream 相当于request,getInputStream() 获取请求区内容字节流

OutputStream 相当于request.getOutputStream() 获取响应区内容字节流

Reader request.getReader()

Writer request.getWriter()

注意InputStream/OutputStream不能与Reader/Writer混用

WebRequest 提供了统一的访问请求数据的接口(参数区、请求头区,但不能访问Cookie区)

NativeWebRequest 继承WebRequest,提供本地Servelt API

webRequest.getParameter(“test”)

webRequest.setAttribute(“key”,”value”,WebRequest.SCOPE_REQUEST);作用域范围

webRequest.getAttribute(“key”,WebRequest.SCOPE_REQUEST)

request = nativeWebRequest.getNativeRequest(HttpServletRequest.class)

response = nativeWebRequest.getNativeResponse(HttpServletResponse.class)

HttpSession

  Spring MVC自动将Servlet API的session传递过来

命令对象

  就是带有setter方法的普通类,用于接收表单参数

Map map, Model model, ModelMap modelMap

这三个参数能够暴露控制器中的模型,用于页面的数据渲染
    @RequestMapping("exposeModelData.do")
    public String testExposeModelData(Map<String,String> map, Model model, ModelMap modelMap){
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        Date date = new Date();
        map.put("key1","value1"+dateFormat.format(date));
        model.addAttribute("key2","value2"+dateFormat.format(date));
        modelMap.addAttribute("key3","value3"+dateFormat.format(date));
        return "exposeModelData";
    }
    <table>
        <thead><h2>显示控制器暴露的模型数据</h2></thead>
        <tbody>
            <tr>
                <td>Map</td>
                <td><c:out value="${key1}"/></td>
            </tr>
            <tr>
                <td>Model</td>
                <td><c:out value="${key2}"/></td>
            </tr>
            <tr>
                <td>ModelMap</td>
                <td><c:out value="${key3}"/></td>
            </tr>
        </tbody>
    </table>

页面上可以这样获取数据

时间: 2024-08-05 08:31:35

Spring MVC控制器方法参数类型的相关文章

spring mvc 控制器方法传数组对象的一些经验

因为项目需要在一个表单里面提交多个对象,比较好的做法就是直接在控制器方法参数里传一个数组. 由于Spring mvc框架在反射生成控制方法的参数对象的时候会调用这个类的getDeclaredConstructor方法来获得构造函数, 但是一直报NoSuchMethodException的异常. 根据这个方法的jdk文档,这个类是一个数组对象时,这个方法会抛出java.lang.NoSuchMethodException,因为接口.数组类.void.基本类型没有构造函数. 同事后来给我支了两招,使

spring mvc 控制器方法传递一些经验对象的数组

由于该项目必须提交一个表单,其中多个对象,更好的方法是直接通过在控制器方法参数的数组. 因为Spring mvc框架在反射生成控制方法的參数对象的时候会调用这个类的getDeclaredConstructor方法来获得构造函数, 可是一直报NoSuchMethodException的异常. 依据这种方法的jdk文档,这个类是一个数组对象时,这种方法会抛出java.lang.NoSuchMethodException,由于接口.数组类.void.基本类型没有构造函数. 同事后来给我支了两招,使用A

关于一些Spring MVC控制器的参数注解总结

昨天同事问我控制器参数的注解的问题,我好久没那样写过,把参数和url一起设置,不过,今天我看了一些文章,查了一些资料,我尽可能的用我自己的理解方式来解释它吧! [email protected]绑定单个请求参数值 @RequestParam用于将请求参数区数据映射到功能处理方法的参数上. [java] view plain copy public String requestparam1(@RequestParam String username) 请求中包含username参数(如/reque

关于laravel5.5控制器方法参数依赖注入原理深度解析及问题修复

在laravel5.5中,可以根据控制器方法的参数类型,自动注入一个实例化对象,极大提升了编程的效率,但是相比较与Java的SpringMVC框架,功能还是有所欠缺,使用起来还是不太方便,主要体现在方法参数的注入不完全是按照参数名称进行的,如果改变了传入参数的顺序会导致类型不匹配的错误. 一.控制器方法参数注入步骤设计 1.在/routes/web.php中添加路由 Route::get('/diary/show/{diary}/{page?}','Diary\[email protected]

Spring MVC url提交参数和获取参数

普通URL提交参数 该格式url为:url.do?param1=mahc&param2=8888.00 需要在上文中的HelloController对象添加方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 /**      * Spring MVC URL提交参数      * @param name      * @return      */     @RequestMapping(/param)     public ModelAndView getInfo(@Request

【spring mvc】后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface

后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Speci

Spring MVC的各种参数绑定方式(请求参数用基础类型和包装类型的区别)(转)

1.基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" type="text"

SpringMVC控制器方法参数传入的ModelMap 和Model类型有啥区别

参考 http://blog.csdn.net/u013067598/article/details/69372309 http://blog.csdn.net/u013686993/article/details/52932079 可见最终传入的是ExtendedModelMap ,它继承了ModelMap ,实现了Model接口, ModelMap又继承自HashMap. Model接口的方法 ModeMap类的方法: ExtendedModelMap类的方法: 可见ExtendedMode

Spring MVC控制器

Spring MVC中控制器用于解析用户请求并且转换为模型,提供访问应用程序的行为,通常用注解方式实现. org.springframework.stereotype.Controller注解类型用于声明Spring类的实例为一个控制器, Spring可以扫描找到应用程序中所有基于注解的控制器类,所以需要在配置文件中声明扫描路径: <!-- 自动扫描包,实现支持注解的IOC --> <context:component-scan base-package="cn.luan.co