在FileUpload一文中,我们初步了解了SpringMVC中View的用法,在例子中,通过给Model添加一个属性(model.addAttribute()),View对应的JSP就可以获取该值。本文再介绍一些View对应JSP取值的方式。
增加一个Controller,ViewsController:
package org.springframework.samples.mvc.views;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/views/*")
public class ViewsController {
@RequestMapping(value="html", method=RequestMethod.GET)
public String prepare(Model model) {
model.addAttribute("foo", "bar");
model.addAttribute("fruit", "apple");
return "views/html";
}
@RequestMapping(value="/viewName", method=RequestMethod.GET)
public void usingRequestToViewNameTranslator(Model model) {
model.addAttribute("foo", "bar");
model.addAttribute("fruit", "apple");
}
@RequestMapping(value="pathVariables/{foo}/{fruit}", method=RequestMethod.GET)
public String pathVars(@PathVariable String foo, @PathVariable String fruit) {
// No need to add @PathVariables "foo" and "fruit" to the model
// They will be merged in the model before rendering
return "views/html";
}
@RequestMapping(value="dataBinding/{foo}/{fruit}", method=RequestMethod.GET)
public String dataBinding(@Valid JavaBean javaBean, Model model) {
// JavaBean "foo" and "fruit" properties populated from URI variables
return "views/dataBinding";
}
}
1. 访问"http://localhost:8080/web/views/html",返回到"webapp/WEB-INF/views/views/html.jsp":
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>My HTML View</title>
<link href="<c:url value="/resources/form.css" />" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="success">
<h3>foo: "${foo}"</h3>
<h3>fruit: "${fruit}"</h3>
</div>
</body>
</html>
prepare(Model model)同FileUpload一样,通过model.addAttribite("foo", "bar");,JSP的${foo}就能获得"bar"。
2. 访问"http://localhost:8080/web/views/viewName",返回到"webapp/WEB-INF/views/views/viewName.jsp",这个jsp文件和html.jsp一样。
usingRequestToViewNameTranslator(Model model)和prepare(Model model)稍有不同,该方法的返回值为void,SpringMVC认为返回值为void的View名字就是@RequestMapping中映射的完整路径,即"views/viewName"。
3. 访问"http://localhost:8080/web/views/pathVariables/bar/orange",返回到"webapp/WEB-INF/views/views/html.jsp"
pathVars方法多了@PathVariable注解,该注解解析URL路径,并赋值给带有@PathVaribale的变量,View对应的JSP可以直接读取到这个变量的值。
4. 访问"http://localhost:8080/web/views/dataBinding/bar/orange",返回到"webapp/WEB-INF/views/views/dataBinding.jsp"
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>Data Binding with URI Template Variables</title>
<link href="<c:url value="/resources/form.css" />" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="success">
<h3>javaBean.foo: ${javaBean.foo}</h3>
<h3>javaBean.fruit: ${javaBean.fruit}</h3>
</div>
</body>
</html>
dataBinding(@Valid JavaBean javaBean, Model model)的方法参数中有个自定义的Java类,SpringMVC会自动解析URL路径,并且感知foo和fruit是否为JavaBean的属性,如果是,则将它赋值给JavaBean,非常智能。JSP现在得到的就是一个JavaBean,因此需要使用${javaBean.foo}获取具体值。
分享到:
相关推荐
在Spring MVC框架中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。这个压缩包文件"Spring MVC 文件上传下载 后端 - Java.zip"包含的文档可能详细阐述了如何在Java后端实现这些功能。以下是关于...
Spring MVC 是 Spring 框架的一个模块,专门用于处理Web应用程序的请求-响应模式。在3.2版本中,Spring MVC引入了一些重要的改进和增强,使得开发更加高效和灵活。本篇文章将详细讲解如何配置Spring MVC 3.2,以便在...
在本文中,我们将深入探讨如何逐步开发一个基于Spring框架的MVC(Model-View-Controller)应用程序。Spring MVC是Spring框架的一个重要模块,它为构建Web应用提供了强大的支持,包括模型处理、视图渲染和控制器逻辑...
在Web开发中,MVC(Model-View-Controller)架构是一种广泛应用的设计模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。本实验是基于Java的Web编程,旨在利用MVC架构或者...
综上所述,`spring-webmvc`是Spring MVC的核心,它通过一系列组件和机制提供了强大的Web应用开发能力。通过合理的配置和使用,可以构建出高效、灵活的企业级Web应用。在SSM框架中,`spring-webmvc`与Spring的核心...
Spring MVC 是一个强大的Java Web应用程序框架,用于构建高效、模块化的Web应用。在这个教程中,我们将探讨如何使用Spring MVC 3来创建一个简单的Web应用。首先,我们需要建立一个新的Web项目。 1. 创建Web项目: ...
总结,Spring MVC 为开发者提供了灵活且强大的 Web 开发框架,通过 XML 配置,我们可以自定义各个组件,实现复杂的应用场景。随着版本的升级,Spring 逐渐引入了更多的注解配置,使得开发更加简洁高效。不过,理解 ...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。在本项目"spring-mvc-study.zip"中,我们可以深入理解并实践Spring MVC的核心概念和技术。 首先,Spring MVC是Spring...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(Model-View-Controller)架构的应用程序提供了强有力的支持。在本示例中,我们将深入探讨Spring MVC的基本概念、配置以及如何创建一个...
理解并熟练运用这些基础概念,将为你进一步探索Spring MVC和更复杂的Web应用开发奠定坚实基础。在实际开发中,还需要考虑数据库集成、安全控制、异常处理等更多方面。因此,深入学习和实践Spring MVC是提升Java Web...
Spring MVC是基于模型-视图-控制器(Model-View-Controller, MVC)模式实现的Web应用程序框架。其核心是DispatcherServlet,充当Spring MVC的前端控制器。DispatcherServlet必须在Web应用程序的web.xml文件中进行...
这是一个基于Spring MVC、Spring Data、Thymeleaf和MySQL数据库构建的简单Web应用程序工程。这个项目的核心在于利用这些技术栈来实现数据的CRUD(创建、读取、更新和删除)操作,并通过Web界面进行交互。 **Spring ...
Spring MVC 是一个强大的Java web开发框架,用于构建高效、可维护和模块化的Web应用程序。它基于Spring框架,提供了模型-视图-控制器(MVC)架构模式,简化了从前端到后端的数据处理流程。本实例将深入探讨如何实现...
Spring MVC 是一款基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。这个"Spring MVC 简单Demo"旨在帮助初学者理解如何设置和运行一个基本的Spring MVC项目。下面,我们将深入探讨Spring MVC...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本"spring-mvc helloworld demo"中,我们可以看到如何设置一个...
Spring MVC 是 Spring 框架的一部分,它是一个轻量级的、基于模型-视图-控制器(MVC)设计模式的 Web 应用开发框架。Spring MVC 提供了丰富的功能,使得开发者可以快速、高效地构建高质量的 Web 应用。在本示例 ...
在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring MVC是Spring框架的一个重要模块,用于构建Web应用程序。本文将深入探讨Spring与Spring MVC的整合配置,并结合标签"源码"和"工具"来解析相关的技术细节...
视图解析器是 Spring MVC 中的关键组件,它负责将 Model 数据和视图名称(如 "home")转化为实际的视图资源(如 "/WEB-INF/views/home.jsp")。 **10. 模板引擎** Spring MVC 支持多种模板引擎,如 JSP、Thymeleaf...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建RESTful风格的Web应用程序提供了强大的支持。在本文中,我们将深入探讨如何使用Spring MVC来开发简单的Web应用程序。 首先,Spring MVC的核心组件包括...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本项目创建过程中,我们将深入探讨如何配置一个基本的 Spring ...