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中,每个请求都会经过DispatcherServlet,这是一个前端...
3. **ModelAndView对象**:用于存储模型数据和指定视图,方便在控制器和视图间传递信息。 4. **视图解析器**:如InternalResourceViewResolver,自动根据逻辑视图名解析实际视图资源。 5. **数据绑定和验证**:支持...
模型数据通过ModelMap或者模型对象(@ModelAttribute)传递,这允许我们在Controller中处理数据,然后将结果传递给视图。视图解析器(ViewResolver)根据指定的逻辑视图名查找物理视图,常见的视图技术有JSP、...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
在Controller方法中,可以返回一个ModelAndView对象,指定返回的视图和传递给视图的数据。 5. **视图解析**: Spring MVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等。通过`viewResolver`配置,可以指定视图...
在Spring MVC中,Model代表业务对象,View负责展示,Controller处理用户请求并协调Model和View。 2. **DispatcherServlet**:Spring MVC的入口点,它是一个前端控制器,接收所有HTTP请求,并根据配置的...
模型(Model)负责存储应用的数据,视图(View)用于展示这些数据,而控制器(Controller)则作为模型和视图之间的中介,处理用户请求并调用相应的业务逻辑。Spring MVC通过DispatcherServlet作为入口点,接收HTTP...
6. **ModelAndView**: 这是Spring MVC中用于在控制器和视图之间传递数据的类,包含了模型数据和视图信息。 7. **HandlerMapping**: 处理器映射器根据请求URL找到合适的处理器方法。 8. **HandlerAdapter**: 处理器...
在Spring MVC 3中,我们可以使用`@Controller`注解来标记一个类作为控制器。这个注解表明该类将处理来自客户端的HTTP请求。例如: ```java @Controller public class MyController { // ... } ``` 2. **处理...
11. **转换器和格式化器(Converter & Formatter)**:处理请求参数和模型属性之间的类型转换,使数据绑定更加灵活。 12. **MessageSource**:处理国际化和本地化,提供多语言支持。 13. **异常处理**:通过@...
在"spring3MVC框架demo"中,包含了两个关键功能的实现:文件上传下载功能和使用xheditor发布消息功能。 首先,我们来详细了解一下Spring3MVC的基础配置。在Spring3MVC项目中,配置通常包括以下几个部分: 1. **web...
3. **模型与视图**:在Controller中,使用`@RequestMapping`注解来映射URL请求,并通过`Model`对象将数据传递给视图。视图通常由JSP或Thymeleaf等模板引擎处理,展示给用户。 4. **表单处理**:学习如何处理POST...
Spring MVC支持自动的数据绑定,可以将请求参数直接绑定到Controller方法的参数上,也可以将表单数据绑定到Java对象。此外,@Valid用于验证模型数据,配合Validator接口实现自定义校验规则。 7. **异常处理** ...
在提供的"spring MVC.docx"文档中,可能详细介绍了如何配置Spring MVC环境,创建Controller,处理请求,以及如何配置视图解析器等内容。对于初学者来说,这是一份很好的实践指南,可以帮助理解Spring MVC的工作原理...
在这个"Mastering Spring MVC 4(2015.09)源码"中,我们可以深入理解这个框架的核心概念和实际应用。 首先,Spring MVC 4基于Servlet 3.0规范,这意味着它可以利用异步处理能力,提高了Web应用的性能。通过Async...
此外,Spring MVC提供了ModelAndView类,它可以将处理结果(模型数据)和视图名组合在一起,方便返回给视图层进行渲染。`@ResponseBody`注解可以让方法的返回值直接写入HTTP响应体,常用于返回JSON或XML等格式的数据...
Spring 框架以其依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)为核心,而 Spring MVC 则是它为构建 Web 应用程序提供的模型-视图-控制器(Model-View-Controller, MVC)...
在Spring MVC中,DispatcherServlet作为核心组件负责请求分发,Controller处理请求并返回ModelAndView对象,ViewResolver解析模型数据并渲染视图。 2. **配置与启动** 配置Spring MVC通常涉及web.xml文件中的...