`
守望者
  • 浏览: 54333 次
  • 来自: ...
社区版块
存档分类
最新评论

ModelAndView中使用RedirectView实现跳转

阅读更多

ModelAndView默认是使用转发(forward)方式来完成请求的结果画面,使用RedirectView的话,则会使用重新导向(Redirect)将请求重导到指定的结果位置。如:

java 代码HelloController
  1. package org.beans;   
  2.   
  3. import javax.servlet.http.HttpServletRequest;   
  4. import javax.servlet.http.HttpServletResponse;   
  5.   
  6. import org.springframework.web.servlet.ModelAndView;   
  7. import org.springframework.web.servlet.mvc.Controller;   
  8. import org.springframework.web.servlet.view.RedirectView;   
  9.   
  10. public class HelloController implements Controller {   
  11. private String viewPage;   
  12.     public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {   
  13.         String user=request.getParameter("user");   
  14.         return new ModelAndView(viewPage,"user",user);   
  15.     }   
  16.     public void setViewPage(String viewPage) {   
  17.         this.viewPage = viewPage;   
  18.     }   
  19.        
  20.          
  21. }  
xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3.   
  4. <beans>  
  5.     <bean name="helloController" class="org.beans.HelloController"  
  6.         abstract="false" singleton="true" lazy-init="default"  
  7.         autowire="default" dependency-check="default">  
  8.         <property name="viewPage">  
  9.             <value>hello</value>  
  10.         </property>  
  11.     </bean>  
  12.     <bean id="viewResolver"  
  13.         class="org.springframework.web.servlet.view.InternalResourceViewResolver"  
  14.         abstract="false" singleton="true" lazy-init="default"  
  15.         autowire="default" dependency-check="default">  
  16.         <property name="prefix">  
  17.             <value>/WEB-INF/jsp/</value>  
  18.         </property>  
  19.         <property name="suffix">  
  20.             <value>.jsp</value>  
  21.         </property>  
  22.     </bean>  
  23.            
  24.     <bean id="urlHandleMapping"  
  25.         class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"  
  26.         abstract="false" singleton="true" lazy-init="default"  
  27.         autowire="default" dependency-check="default">  
  28.         <property name="interceptors">  
  29.         <list>  
  30.     <ref bean="loggingInterceptor"/>  
  31.         </list>  
  32.         </property>  
  33.         <property name="mappings">  
  34.             <props>  
  35.                 <prop key="/hello.do">helloController</prop>                   
  36.             </props>  
  37.         </property>  
  38.     </bean>  
  39.     <bean id="loggingInterceptor" class="org.beans.LoggingInterceptor"  
  40.         abstract="false" singleton="true" lazy-init="default"  
  41.         autowire="default" dependency-check="default">  
  42.     </bean></beans>  

根据如上配置如果将java 代码HelloController改成如下:

java 代码
  1. package org.beans;   
  2.   
  3. import javax.servlet.http.HttpServletRequest;   
  4. import javax.servlet.http.HttpServletResponse;   
  5.   
  6. import org.springframework.web.servlet.ModelAndView;   
  7. import org.springframework.web.servlet.mvc.Controller;   
  8. import org.springframework.web.servlet.view.RedirectView;   
  9.   
  10. public class HelloController implements Controller {   
  11. private String viewPage;   
  12.     public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {   
  13.         String user=request.getParameter("user");   
  14.         return new ModelAndView(new RedirectView(viewPage),"user",user);   
  15.     }   
  16.     public void setViewPage(String viewPage) {   
  17.         this.viewPage = viewPage;   
  18.     }   
  19.        
  20.          
  21. }   
则运行时出现错误。该怎么改呢?
分享到:
评论
3 楼 守望者 2007-05-17  
主要有以下几种:
1、 return new ModelAndView(new RedirectView(this.getViewPage()));
2、return new ModelAndView("redirect:data.html");
3、Use the new redirect: syntax in my action-servlet.xml
<property name="successView"><value>redirect:/listAuctions.html</value></property>
2 楼 codeutil 2007-05-11  

return new ModelAndView("redirect:"+viewPage,"user",user);
1 楼 hgq0011 2007-05-11  
或许“http://www.iteye.com/topic/24675”对你有帮助。

相关推荐

    SpringMVC实现简单跳转方法(专题)

    在上面的代码中,我们使用@RequestMapping注解来映射/test03请求,然后使用ModelAndView对象来实现跳转。 4. SpringMVC方式跳转_Redirect SpringMVC还提供了重定向的方式来实现跳转。这种方式通过使用RedirectView...

    模拟springMVC跳转源码

    在模拟Spring MVC的跳转过程中,我们通常会使用`ModelAndView`或`RedirectView`对象来实现视图的跳转。在处理方法中,我们可以创建这些对象,设置需要传递的数据和要跳转的目标URL。 1. `ModelAndView`:它包含了一...

    SpringBoot框架实现JSP跳转和接口Json返回

    总结,虽然SpringBoot对JSP支持有限,但通过上述步骤,我们仍然可以在SpringBoot项目中使用JSP进行视图渲染。同时,利用`@RestController`和对象序列化,我们可以轻松地构建返回Json数据的RESTful接口。这体现了...

    Maven+SpringMVC的HelloWord最简单入门小例子(包含两页面跳转)

    5. **实现页面跳转**:在刚才的方法中,使用`ModelAndView`或`RedirectView`来实现页面跳转。例如,`return new ModelAndView("hello");`将转发到名为"hello"的JSP页面。 6. **创建视图**:在Web项目中创建JSP页面...

    Spring-mvc的事例程序,非常全的

    视图跳转可以通过ModelAndView对象或RedirectView实现。 8. **拦截器(Interceptor)** Spring MVC允许定义拦截器,它们在请求处理前后执行,可用于登录检查、日志记录等。@RestControllerAdvice和@...

    JAVA框架面试题汇总 (2).docx

    Spring MVC的Controller可以使用RedirectView、ForwardView或ModelAndView对象来实现内部跳转到另一个Controller的方法,这样可以保持请求状态并传递数据。此外,也可以利用RedirectAttributes进行重定向,并在...

    SpringMVC界面跳转及参数传递.docx

    在控制器中,你可以通过返回"redirect:/your/url"来实现重定向,或者使用`RedirectView`。 接下来,我们来看一下参数传递: 在SpringMVC中,有多种方式可以将数据从控制器传递到视图,主要有以下几种: 1. **...

    springmvcdemo.zip

    这可以通过`RedirectView`、`RedirectAttributes`或在控制器方法中使用`return "redirect:/newUrl"`来实现。 2. **使用RedirectView**: `RedirectView`是一个视图类,可以直接在控制器方法中创建并设置属性,然后...

    SpringMVC面试题(2024最新版).docx

    函数返回值可以是视图名、ModelAndView对象、RedirectView等,表示跳转或展示的视图。 **数据传递**: ModelMap或Model对象可以用于在控制器和视图间传递数据,也可以放入Session。 **拦截器**: 自定义...

    springMVC第一个示例

    5. **实现跳转功能**:在 Controller 方法中,你可以使用 `RedirectView` 或 `ModelAndView` 对象来实现页面跳转。例如,`return new ModelAndView("redirect:/welcome");` 将重定向到 "welcome" 视图。 6. **创建...

    spring-redirect:在Spring中重定向的不同方法

    Spring提供了多种方式来实现这一功能,包括使用`RedirectView`、`RedirectAttributes`、`ResponseEntity`以及`ModelAndView`。 1. **使用RedirectView**: `RedirectView`是Spring MVC中的一个视图类,专门用于...

    Spring MVC

    在控制器方法中,我们通常会使用`ModelAndView`或`RedirectView`对象来指定视图名,或者直接返回一个字符串视图名。 例如,以下是一个简单的控制器方法,演示了如何处理一个GET请求并跳转到一个JSP页面: ```java ...

    SpringMVC 学习总结

    1. **使用 ModelAndView 对象**: 直接设置视图名和数据模型。 ```java @RequestMapping("/hello") public ModelAndView hello() { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName...

    传智播客2016springmvc资料

    - 使用 `ModelAndView` 类或者 `RedirectView` 实现视图跳转和数据传递。 6. **视图解析器(View Resolver)** - 视图解析器根据逻辑视图名解析为实际视图,如 JSTL 或 FreeMarker 模板。 - 例如,使用 `...

    springMVC项目

    - **视图跳转**: 通过`ModelAndView`对象或者`RedirectView`进行页面间的跳转。 - **数据绑定**: 自动将请求参数绑定到Controller方法的参数上。 - **国际化与本地化**: 提供不同语言版本的资源文件,根据用户...

    Spring MVC框架3个入门例子

    你将学习如何定义模型对象,使用`@ModelAttribute`注解将表单数据绑定到对象,以及如何使用`ModelAndView`或`RedirectView`来控制视图的跳转。此外,你可能还会接触到Spring MVC的拦截器,它们可以用来实现登录检查...

    精通Spring MVC 4 ,Geoffroy Warin ,P288 1

    例如,使用`RedirectView`或`ModelAndView`等类来控制页面跳转。 #### 四、复杂表单设计与模型验证 - **表单设计**:Spring MVC提供了多种表单标签库,帮助开发者构建复杂的用户输入表单。例如,使用`&lt;form:form&gt;`...

Global site tag (gtag.js) - Google Analytics