直接指定路径对应的视图名称
在使用SpringMVC开发Web应用时会存在一些没有业务逻辑,只需要直接展示对应的页面的请求。对于这些请求我们可以不定义Controller处理方法,直接建立请求路径和视图的对应关系。在使用基于XML的SpringMVC配置时可以通过mvc namespace提供的view-controller来指定请求路径和视图的对应关系。下面的代码中就指定了当请求路径是/
时将直接响应名为index
的视图。如果有需要还可以通过status-code
属性指定需要响应的Http状态码。
<mvc:view-controller path="/" view-name="index"/>
如果是使用基于Java配置的SpringMVC,则可以通过实现WebMvcConfigurer
的addViewControllers
定义请求路径直接对应的响应视图。
直接指定请求路径对应的重定向路径
当视图名称是以redirect:
前缀开始时会自动转换为一个RedirectView对象用以进行页面的重定向。所以如果需要直接指定一个路径对应的重定向路径时也可以通过<mvc:view-controller/>
来进行,比如需要在请求/hello
时自动重定向到/world
可以进行如下定义:
<mvc:view-controller path="/hello" view-name="redirect:/world"/>
基于这种需求SpringMVC也特意为我们提供了<mvc:redirect-view-controller/>
直接定义请求路径与重定向路径的对应关系。所以上面的需求可以重写为如下这样:
<mvc:redirect-view-controller redirect-url="/world" path="/hello"/>
直接指定请求路径对应的状态码
如果我们在处理某一个请求时只需要响应一个状态码,则可以直接通过<mvc:status-controller/>
来定义。下面的示例定义了当请求/bad_request
时会直接响应Http状态码400。
<mvc:status-controller status-code="400" path="/bad_request"/>
直接指定请求路径对应的重定向路径或者是对应的状态码在基于Java类的配置时也都是通过WebMvcConfigurer
的addViewControllers
定义的。
(注:本文是基于Spring4.1.0所写)
相关推荐
视图解析器的配置中通常包含前缀和后缀,这样视图名称会被解析为完整的URL路径。 对于JSON视图,SpringMVC默认支持JSON输出,只要在Controller的方法上添加`@ResponseBody`注解,SpringMVC就会尝试将方法的返回值...
标题 "springMvc helloworld及springMvc多种视图" 暗示了我们将探讨Spring MVC的基础概念,以及如何在实际应用中实现一个简单的“Hello World”示例,同时也会涉及Spring MVC支持的不同视图技术。 首先,Spring MVC...
- **InternalResourceViewResolver**:最常用的视图解析器,可以配置前缀和后缀,例如,如果逻辑视图名为"user",则实际查找的视图路径为"prefix/user.suffix",默认的后缀是".jsp"。 - **BeanNameViewResolver**...
视图名称通常与实际视图资源路径有关,通过配置 `ViewResolver` 可以指定转换规则。 ### 第 6 章 异常处理 SpringMVC 提供了统一的异常处理机制,可以通过 `@ExceptionHandler` 注解定义异常处理器,或配置 `...
3. 使用生成的视图路径查找对应的视图资源,如JSP文件。 4. 如果找到视图资源,创建并返回一个View实例,这个实例负责渲染视图。 5. 最终,DispatcherServlet使用这个View实例将渲染后的结果发送回客户端。 除了...
在这里,你需要指定servlet的名字、初始化参数(包括SpringMVC的配置文件路径)以及映射URL。 3. **SpringMVC配置文件** 配置文件(如`servlet-context.xml`)定义了SpringMVC的行为,包括HandlerMapping、...
1. **配置 SpringMVC**:在 `web.xml` 文件中配置 DispatcherServlet 和 SpringMVC 配置文件的路径。 2. **编写 Controller**:创建一个简单的 Java 类,使用 `@Controller` 注解标记,定义一个处理方法,如 `hello...
源码阅读的过程中,我们可以理解这些组件之间的协作机制,比如HandlerMapping的实现类是如何解析请求路径的,HandlerAdapter是如何执行Controller方法的,以及ViewResolver是如何找到并渲染视图的。这些理解有助于...
- **方法级别**:用于方法级别时,直接指定了该方法所对应的请求路径。 #### 9. 如何映射特定方法: - **映射方法**:通过在方法上添加 `@RequestMapping` 注解,并指定需要拦截的路径即可。 #### 10. 拦截特定...
- Controller处理完请求后,通常会返回一个ModelAndView对象,包含模型数据和视图名,或者直接返回一个Model对象。 - 响应数据可以通过ModelAndView的viewName指定视图,model属性添加模型数据。 7. **RESTful ...
视图解析器(ViewResolver)负责找到对应的视图并渲染。 9. **异常处理** SpringMVC提供了优雅的异常处理机制,允许开发者定义全局或特定Controller的异常处理器,将异常信息转换为用户友好的错误页面。 10. **...
7. DispatcherServlet根据ModelAndView中的视图名称,使用ViewResolver查找对应的视图对象。 8. ViewResolver找到真实的视图后,返回给DispatcherServlet。 9. 最后,DispatcherServlet负责渲染视图并返回给客户端。...
SpringMVC是Spring框架的一个模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。它简化了Java Web应用的开发,通过解耦业务逻辑、数据处理和用户界面,使得开发者可以更专注于应用程序的核心功能。下面将...
视图解析器会根据返回的逻辑视图名查找对应的物理视图路径。 **2. FreeMarker模板引擎** FreeMarker是一个强大的模板语言,用于生成动态内容。在Spring MVC中,我们可以通过配置FreeMarkerConfigurer来集成...
视图名称可以是相对路径,也可以是预定义的逻辑视图名。 **6. 数据绑定与验证** SpringMVC支持自动的数据绑定,即将HTTP请求参数自动绑定到Controller方法的参数上。同时,它还提供了JSR-303/JSR-349标准的Bean ...
6. **ViewController**:视图控制器,可以直接返回一个视图名称,而不是ModelAndView对象。 **配置与初始化** SpringMVC的配置通常通过XML或Java配置类完成,包括设置DispatcherServlet、定义Bean、配置...
6. **视图解析器**:如 `InternalResourceViewResolver`,它将逻辑视图名转换为实际的视图资源路径,例如将 "home" 解析为 "/WEB-INF/jsp/home.jsp"。 7. **数据绑定**:SpringMVC 支持自动的数据绑定,可以把请求...
6. **视图解析器**:如InternalResourceViewResolver,负责根据返回的视图名称找到对应的视图模板(如JSP、FreeMarker等)。 7. **模型数据**:Model对象可以存储在ModelMap或ModelAndView中,供视图渲染时使用。...