ModelAndView默认是使用转发(forward)方式来完成请求的结果画面,使用RedirectView的话,则会使用重新导向(Redirect)将请求重导到指定的结果位置。如:
java 代码HelloController
- package org.beans;
-
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.Controller;
- import org.springframework.web.servlet.view.RedirectView;
-
- public class HelloController implements Controller {
- private String viewPage;
- public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
- String user=request.getParameter("user");
- return new ModelAndView(viewPage,"user",user);
- }
- public void setViewPage(String viewPage) {
- this.viewPage = viewPage;
- }
-
-
- }
xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
-
- <beans>
- <bean name="helloController" class="org.beans.HelloController"
- abstract="false" singleton="true" lazy-init="default"
- autowire="default" dependency-check="default">
- <property name="viewPage">
- <value>hello</value>
- </property>
- </bean>
- <bean id="viewResolver"
- class="org.springframework.web.servlet.view.InternalResourceViewResolver"
- abstract="false" singleton="true" lazy-init="default"
- autowire="default" dependency-check="default">
- <property name="prefix">
- <value>/WEB-INF/jsp/</value>
- </property>
- <property name="suffix">
- <value>.jsp</value>
- </property>
- </bean>
-
- <bean id="urlHandleMapping"
- class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
- abstract="false" singleton="true" lazy-init="default"
- autowire="default" dependency-check="default">
- <property name="interceptors">
- <list>
- <ref bean="loggingInterceptor"/>
- </list>
- </property>
- <property name="mappings">
- <props>
- <prop key="/hello.do">helloController</prop>
- </props>
- </property>
- </bean>
- <bean id="loggingInterceptor" class="org.beans.LoggingInterceptor"
- abstract="false" singleton="true" lazy-init="default"
- autowire="default" dependency-check="default">
- </bean></beans>
根据如上配置如果将java 代码HelloController改成如下:
java 代码
- package org.beans;
-
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.Controller;
- import org.springframework.web.servlet.view.RedirectView;
-
- public class HelloController implements Controller {
- private String viewPage;
- public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
- String user=request.getParameter("user");
- return new ModelAndView(new RedirectView(viewPage),"user",user);
- }
- public void setViewPage(String viewPage) {
- this.viewPage = viewPage;
- }
-
-
- }
则运行时出现错误。该怎么改呢?
分享到:
相关推荐
在上面的代码中,我们使用@RequestMapping注解来映射/test03请求,然后使用ModelAndView对象来实现跳转。 4. SpringMVC方式跳转_Redirect SpringMVC还提供了重定向的方式来实现跳转。这种方式通过使用RedirectView...
在模拟Spring MVC的跳转过程中,我们通常会使用`ModelAndView`或`RedirectView`对象来实现视图的跳转。在处理方法中,我们可以创建这些对象,设置需要传递的数据和要跳转的目标URL。 1. `ModelAndView`:它包含了一...
总结,虽然SpringBoot对JSP支持有限,但通过上述步骤,我们仍然可以在SpringBoot项目中使用JSP进行视图渲染。同时,利用`@RestController`和对象序列化,我们可以轻松地构建返回Json数据的RESTful接口。这体现了...
5. **实现页面跳转**:在刚才的方法中,使用`ModelAndView`或`RedirectView`来实现页面跳转。例如,`return new ModelAndView("hello");`将转发到名为"hello"的JSP页面。 6. **创建视图**:在Web项目中创建JSP页面...
视图跳转可以通过ModelAndView对象或RedirectView实现。 8. **拦截器(Interceptor)** Spring MVC允许定义拦截器,它们在请求处理前后执行,可用于登录检查、日志记录等。@RestControllerAdvice和@...
Spring MVC的Controller可以使用RedirectView、ForwardView或ModelAndView对象来实现内部跳转到另一个Controller的方法,这样可以保持请求状态并传递数据。此外,也可以利用RedirectAttributes进行重定向,并在...
在控制器中,你可以通过返回"redirect:/your/url"来实现重定向,或者使用`RedirectView`。 接下来,我们来看一下参数传递: 在SpringMVC中,有多种方式可以将数据从控制器传递到视图,主要有以下几种: 1. **...
这可以通过`RedirectView`、`RedirectAttributes`或在控制器方法中使用`return "redirect:/newUrl"`来实现。 2. **使用RedirectView**: `RedirectView`是一个视图类,可以直接在控制器方法中创建并设置属性,然后...
函数返回值可以是视图名、ModelAndView对象、RedirectView等,表示跳转或展示的视图。 **数据传递**: ModelMap或Model对象可以用于在控制器和视图间传递数据,也可以放入Session。 **拦截器**: 自定义...
5. **实现跳转功能**:在 Controller 方法中,你可以使用 `RedirectView` 或 `ModelAndView` 对象来实现页面跳转。例如,`return new ModelAndView("redirect:/welcome");` 将重定向到 "welcome" 视图。 6. **创建...
Spring提供了多种方式来实现这一功能,包括使用`RedirectView`、`RedirectAttributes`、`ResponseEntity`以及`ModelAndView`。 1. **使用RedirectView**: `RedirectView`是Spring MVC中的一个视图类,专门用于...
在控制器方法中,我们通常会使用`ModelAndView`或`RedirectView`对象来指定视图名,或者直接返回一个字符串视图名。 例如,以下是一个简单的控制器方法,演示了如何处理一个GET请求并跳转到一个JSP页面: ```java ...
1. **使用 ModelAndView 对象**: 直接设置视图名和数据模型。 ```java @RequestMapping("/hello") public ModelAndView hello() { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName...
- 使用 `ModelAndView` 类或者 `RedirectView` 实现视图跳转和数据传递。 6. **视图解析器(View Resolver)** - 视图解析器根据逻辑视图名解析为实际视图,如 JSTL 或 FreeMarker 模板。 - 例如,使用 `...
- **视图跳转**: 通过`ModelAndView`对象或者`RedirectView`进行页面间的跳转。 - **数据绑定**: 自动将请求参数绑定到Controller方法的参数上。 - **国际化与本地化**: 提供不同语言版本的资源文件,根据用户...
你将学习如何定义模型对象,使用`@ModelAttribute`注解将表单数据绑定到对象,以及如何使用`ModelAndView`或`RedirectView`来控制视图的跳转。此外,你可能还会接触到Spring MVC的拦截器,它们可以用来实现登录检查...
例如,使用`RedirectView`或`ModelAndView`等类来控制页面跳转。 #### 四、复杂表单设计与模型验证 - **表单设计**:Spring MVC提供了多种表单标签库,帮助开发者构建复杂的用户输入表单。例如,使用`<form:form>`...