`
kavy
  • 浏览: 888570 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring mvc 3 在controller和视图之间传递参数

 
阅读更多

 

Spring MVC3在controller和视图之间传递参数的办法:
 
一, 从controller往视图传递值,controller---->视图
 
1)简单类型,如int, String,直接写在controller办法的参数里,是无法传递到视图页面上的(经测试)。
 
(而用@RequestParam("name")注解,可以从视图上,或地址中加?name=***传递到controller办法里)
 
2)可以用Map<String, Object>,其键值可以在页面上用EL表达式¥{键值名}获得,
 
3)也可以用Model类对象来传递,有addAttribute(key, value)办法,其键值可以在页面上用EL表达式¥{键值名}获得,
 
若是用addAttribute(value)这个办法,会将类型名的首字母改成小写后,作为键值名传递畴昔,例如"ok"在页面上用¥{string}获得,而一个复合类对象,如User类对象,页面上用¥{user}获得该对象,用¥{user.propertyName}获得其属性,这是用Model的一大上风。
例如,model.addAttribute(new User("my姓名","我的爱好有泅水打球"));
如许页面上就能用¥{user.name}和¥{user.hobby}打印对应属性
 
     @RequestMapping(value={"/","/hello"})
     public String hello(int id,Map<String,Object> map) {
          System.out.println(id);
          System.out.println("hello");
          map.put("hello", "world");
          return "hello";
     }
   
     @RequestMapping(value="/say")
     public String say(@RequestParam int id,Model model) {
          System.out.println("say");
          model.addAttribute("hello", "value");
          //应用Object的类型作为key,String-->string
          model.addAttribute("ok");
          return "hello";
     } www.2cto.com
 
二,从视图向controller传递值,  controller <--- 视图
 
1)简单类型,如int, String, 应在变量名前加@RequestParam注解,
例如:
       @RequestMapping("hello3")
       public String hello3( @RequestParam("name" ) String name,
                               @RequestParam("hobby" ) String hobby){
            System. out.println("name=" +name);
            System. out.println("hobby=" +hobby);      
             return "hello" ;
      }
但如许就请求输入里面必须有这两个参数了,可以用required=false来作废,例如:
@RequestParam(value="name",required=false) String name
但经测试也可以完全不写这些注解,即办法的参数写String name,结果与上方雷同。
 
2)对象类型:
       @RequestMapping("/hello4" )
       public String hello4(User user){
            System.out.println("user.getName()=" +user.getName());
            System.out.println("user.getHobby()=" +user.getHobby());
            return "hello";
      }
 
Spring MVC会按:
     “HTTP恳求参数名=  号令/表单对象的属性名”
    的规矩主动绑定恳求数据,支撑“级联属性名”,主动进行根蒂根基类型数据转换。
 
即有一个User类,如下
package model;
 
public class User {
       private String name ;
       private String hobby ;
       public User(){
           
      }
       public User(String name, String hobby) {
             this.name = name;
             this.hobby = hobby;
      }
//...get/set办法略 
 
则页面上可以用
<form name="form1" action="hello4" method="post">
     <input type="text" name="name"/>
     <input type="text" name="hobby"/>
...
提交后,把值直接绑定到user对象上。
 
此外,还可以限制提交办法为POST,即批改办法的@RequestMapping注解为
@RequestMapping(value="/hello4",method=RequestMethod.POST)
 
最后,重视,若是这里提交过来的字符呈现乱码,应当在web.xml里参加如下filter:
 
<filter>
   <filter-name>encodingFilter</filter-name>
   <filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class>
   <init-param>
      <param-name>encoding</param-name>
      <param-value>utf8</param-value>
   </init-param>
</filter>
 
<filter-mapping>
   <filter-name>encodingFilter</filter-name >
   <url-pattern>/*</url-pattern>
</filter-mapping>

分享到:
评论

相关推荐

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    在该模式中,模型负责业务逻辑处理,视图负责展示数据,而控制器则作为模型和视图之间的桥梁,接收用户请求并调用相应的服务来处理这些请求。 在Spring MVC中,每个请求都会经过DispatcherServlet,这是一个前端...

    Mastering Spring MVC 3中文版

    3. **ModelAndView对象**:用于存储模型数据和指定视图,方便在控制器和视图间传递信息。 4. **视图解析器**:如InternalResourceViewResolver,自动根据逻辑视图名解析实际视图资源。 5. **数据绑定和验证**:支持...

    最全最经典spring-mvc教程

    模型数据通过ModelMap或者模型对象(@ModelAttribute)传递,这允许我们在Controller中处理数据,然后将结果传递给视图。视图解析器(ViewResolver)根据指定的逻辑视图名查找物理视图,常见的视图技术有JSP、...

    Spring MVC jar包

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...

    Spring mvc5.0.3 所有jar包

    在Controller方法中,可以返回一个ModelAndView对象,指定返回的视图和传递给视图的数据。 5. **视图解析**: Spring MVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等。通过`viewResolver`配置,可以指定视图...

    Spring MVC 基础实例源码01

    在Spring MVC中,Model代表业务对象,View负责展示,Controller处理用户请求并协调Model和View。 2. **DispatcherServlet**:Spring MVC的入口点,它是一个前端控制器,接收所有HTTP请求,并根据配置的...

    Spring MVC 4.2.3

    模型(Model)负责存储应用的数据,视图(View)用于展示这些数据,而控制器(Controller)则作为模型和视图之间的中介,处理用户请求并调用相应的业务逻辑。Spring MVC通过DispatcherServlet作为入口点,接收HTTP...

    spring MVC .docx

    6. **ModelAndView**: 这是Spring MVC中用于在控制器和视图之间传递数据的类,包含了模型数据和视图信息。 7. **HandlerMapping**: 处理器映射器根据请求URL找到合适的处理器方法。 8. **HandlerAdapter**: 处理器...

    spring mvc 3_demo

    在Spring MVC 3中,我们可以使用`@Controller`注解来标记一个类作为控制器。这个注解表明该类将处理来自客户端的HTTP请求。例如: ```java @Controller public class MyController { // ... } ``` 2. **处理...

    spring mvc 整合包

    11. **转换器和格式化器(Converter & Formatter)**:处理请求参数和模型属性之间的类型转换,使数据绑定更加灵活。 12. **MessageSource**:处理国际化和本地化,提供多语言支持。 13. **异常处理**:通过@...

    spring3MVC 框架demo

    在"spring3MVC框架demo"中,包含了两个关键功能的实现:文件上传下载功能和使用xheditor发布消息功能。 首先,我们来详细了解一下Spring3MVC的基础配置。在Spring3MVC项目中,配置通常包括以下几个部分: 1. **web...

    Spring MVC简单例子

    3. **模型与视图**:在Controller中,使用`@RequestMapping`注解来映射URL请求,并通过`Model`对象将数据传递给视图。视图通常由JSP或Thymeleaf等模板引擎处理,展示给用户。 4. **表单处理**:学习如何处理POST...

    spring MVC_快速入门

    Spring MVC支持自动的数据绑定,可以将请求参数直接绑定到Controller方法的参数上,也可以将表单数据绑定到Java对象。此外,@Valid用于验证模型数据,配合Validator接口实现自定义校验规则。 7. **异常处理** ...

    spring-MVC.zip_Java spring mvc_spring mvc_spring mvc

    在提供的"spring MVC.docx"文档中,可能详细介绍了如何配置Spring MVC环境,创建Controller,处理请求,以及如何配置视图解析器等内容。对于初学者来说,这是一份很好的实践指南,可以帮助理解Spring MVC的工作原理...

    Mastering Spring MVC 4(2015.09)源码

    在这个"Mastering Spring MVC 4(2015.09)源码"中,我们可以深入理解这个框架的核心概念和实际应用。 首先,Spring MVC 4基于Servlet 3.0规范,这意味着它可以利用异步处理能力,提高了Web应用的性能。通过Async...

    Spring MVC使用Demo

    此外,Spring MVC提供了ModelAndView类,它可以将处理结果(模型数据)和视图名组合在一起,方便返回给视图层进行渲染。`@ResponseBody`注解可以让方法的返回值直接写入HTTP响应体,常用于返回JSON或XML等格式的数据...

    Spring MVC学习框架

    Spring 框架以其依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)为核心,而 Spring MVC 则是它为构建 Web 应用程序提供的模型-视图-控制器(Model-View-Controller, MVC)...

    精通Spring MVC4

    在Spring MVC中,DispatcherServlet作为核心组件负责请求分发,Controller处理请求并返回ModelAndView对象,ViewResolver解析模型数据并渲染视图。 2. **配置与启动** 配置Spring MVC通常涉及web.xml文件中的...

Global site tag (gtag.js) - Google Analytics