`

Spring 重定向简易使用

阅读更多
直接上代码,调试firefox,F12,如装了firebug先禁用:
package com.up360.wechat.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springframework.web.servlet.view.RedirectView;

import javax.servlet.http.HttpServletRequest;

/**
 * 功能或描述:
 *
 * @Author: DR.YangLong
 * @Date: 14-7-16
 * @Time: 下午01:18
 * @Email: 410357434@163.com
 * @Version: 1.0
 * @Module: 修正:            日期:
 */
@Controller
@RequestMapping(value = "/redirect")
public class RedirectController {
    //不带参数
    @RequestMapping("/test1")
    public ModelAndView redirect1(){
        ModelAndView mv=new ModelAndView("redirect:/redirect/result.action");
        //使用/开头将使用重定向,不用将变为forward
        return mv;
    }
    //RedirectView构造参数(地址,不使用相对路径,兼容http1.0,暴露请求参数)对应默认值(url,false,true,true)。
    //public RedirectView(String url, boolean contextRelative, boolean http10Compatible, boolean exposeModelAttributes)
   @RequestMapping("/test2")
    public RedirectView redirect2(){
        RedirectView redirectView=new RedirectView("/redirect/result.action");
       return redirectView;
    }

    /**
     * 乱码设置Tomcat server.xml的Connector添加 useBodyEncodingForURI="true"
     * 参数将会拼接到链接后面
     * @return
     */
    @RequestMapping("/test3")
    public ModelAndView redirect3(){
        ModelAndView modelAndView=new ModelAndView("redirect:/redirect/result0.action");
        modelAndView.addObject("msg","ModelAndView第一种方式带参!");
        return modelAndView;
    }

    @RequestMapping("/test4")
    public ModelAndView redirct4(RedirectAttributes redirectAttributes){
       //这个会将数据返回客户端,客户端再携带过来,参数会拼接到链接后面
        /*redirectAttributes.addAttribute("msg","ModelAndView第二种方式带参");*/
        //数据放到session中,下一个控制器接收到后从session清除,参数不会拼接到链接后面,非跨域建议此方式
        redirectAttributes.addFlashAttribute("msg", "ModelAndView第二种方式带参");
        ModelAndView modelAndView=new ModelAndView("redirect:/redirect/result.action");
        return modelAndView;
    }

    @RequestMapping("/result0")
    public @ResponseBody String result(String msg,HttpServletRequest request){
        //如果是对象,可直接用对象绑定,不用使用ModelMap
        return "返回结果1直接绑定数据模型:"+msg;
    }

    @RequestMapping("/result")
    public @ResponseBody String result(ModelMap map,HttpServletRequest request){
        //如果是对象,可直接用对象绑定,不用使用ModelMap
        String msg=(String)map.get("msg");
        return "返回结果2直接绑定数据模型:"+msg;
    }
}
分享到:
评论

相关推荐

    Spring Security简易配置指南

    在本文档中,我们将探讨如何进行Spring Security的简易配置,以确保你的应用在Spring框架下得到有效的安全保护。 首先,你需要在项目中集成Spring Security。这通常涉及到以下几个步骤: 1. **引入依赖**:从...

    一个struts2+spring开发的简易银行系统

    例如,使用Struts2的 interceptors进行输入验证,Spring Security来控制权限和认证。 总的来说,这个基于Struts2和Spring的银行系统展示了如何利用这两个框架的优势来构建一个完整的Web应用。通过整合,开发者可以...

    spring3+hibernate3+struts2实现简易后台菜单控制

    标题 "spring3+hibernate3+struts2实现简易后台菜单控制" 涉及的是一个基于Java Web的经典技术栈构建的后台管理系统。这个系统利用Spring 3作为整体框架,提供依赖注入和AOP(面向切面编程)功能;Hibernate 3作为...

    javaWeb SSM框架简易登录

    JavaWeb SSM框架简易登录是Java开发中一种常见的应用场景,主要涉及Spring、Spring MVC和MyBatis这三大组件。SSM框架是Java企业级开发中非常流行的选择,它提供了强大的功能,可以有效地处理复杂的业务逻辑和数据...

    基于SSH的简易选课系统(含数据库文件).zip

    SSH简易选课系统是Java编程学习的一个优秀实践案例,它整合了Spring、Struts和Hibernate三大框架,提供了完整的用户交互和后台管理功能。通过这个项目,开发者可以深入理解MVC架构、控制反转和持久化等概念,并掌握...

    简易版本仓库管理系统(本人手打)ssm框架

    【简易版本仓库管理系统】是一个基于B/S架构的项目,由我亲自编写,采用了经典的SSM框架,即Struts2、Spring和MyBatis。这个系统旨在实现基础的仓库管理功能,尽管在出库和入库的流程上可能还有待完善,但它的核心...

    基于ssh的简易项目

    "基于SSH的简易项目"通常指的是使用Struts、Spring和Hibernate这三大框架构建的一个Web应用程序,它们组合起来构成了所谓的SSH框架。 **Struts** 是一个MVC(Model-View-Controller)框架,负责处理HTTP请求,管理...

    java简易bbs

    "Controller"是模型和视图之间的桥梁,处理用户的请求,并调用相应的模型方法来更新数据,然后更新或重定向到相应的视图。 数据库方面,Java BBS可能使用了关系型数据库,如MySQL或PostgreSQL,通过JDBC(Java ...

    JSP简易登陆注册源代码

    在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它是基于Java平台的。...随着技能的提升,可以逐步引入更复杂的概念和技术,如框架(Spring MVC)、数据库连接池、安全性增强等。

    shortnr:使用 Spring Boot + Redis 构建的简单 url 缩短器服务

    在本项目中,"shortnr" 是一个基于 Spring Boot 和 Redis 实现的简易 URL 缩短服务。这个服务的主要功能是将长网址转化为较短的、易于分享的字符串,同时保持能够正确重定向到原始的长网址。让我们深入探讨一下其中...

    javaweb简易购物车设计

    `DispatcherServlet`在Spring MVC框架中作为前端控制器,但在这个简易项目中,可能只有一个Servlet处理所有请求。 9. **RESTful设计原则**:尽管是初学者项目,理解RESTful架构风格对URL和HTTP方法的映射也是重要的...

    JSP简易登陆注册源代码1

    9. **响应与重定向**:成功操作后,服务器会返回一个响应,可能使用`response.sendRedirect()`方法将用户重定向到其他页面。 10. **MVC设计模式**:虽然这是一个简单的示例,但理解Model-View-Controller模式的概念...

    springboot+shiro+vue实现的简易教务系统.zip

    2. **权限控制**:Shiro的拦截器会检查用户是否有访问特定URL的权限,如果没有,则重定向到登录页面或无权限页面。 3. **前后端分离**:Vue.js作为前端,通过Ajax请求与SpringBoot后端进行数据交互,实现CRUD操作,...

    qqconnection.zip

    在Spring Boot项目中,你可以使用Spring Security或者Spring Social来实现OAuth2.0的集成。这些库可以帮助你处理授权请求、获取令牌以及通过令牌获取用户信息。 4. **请求授权**:在用户需要登录时,你的应用会跳转...

    servlet+javaBean简易新闻系统(可上传)

    【Servlet+JavaBean简易新闻...通过学习和实践这个“servlet+javaBean简易新闻系统”,开发者可以深入理解Web应用的基本架构,掌握Java Web开发的核心技术,并为进一步学习更高级的框架(如Spring MVC)打下坚实基础。

    简易的投票系统jsp+access

    同时,它也可以作为进一步研究其他高级话题,如Spring框架、MVC模式、安全性策略等的起点。 通过这个【简易的投票系统jsp+access】,开发者可以学习到Web应用的基本开发流程,从用户界面设计到服务器端逻辑实现,再...

    Struts2 简易文档

    这个简易文档,"Struts2.0开发指南",将引领我们深入理解Struts2的核心概念和实践方法。 Struts2是MVC(模型-视图-控制器)设计模式的一个实现,它为开发者提供了丰富的特性,包括动作类、拦截器、结果类型、插件...

    oauth2.0第三方 qq、sina、baidu、renren、osc、豆瓣 等,登陆的简易封装!

    - **令牌交换**:应用使用授权码向第三方平台请求访问令牌(Access Token)和刷新令牌(Refresh Token)。 - **访问资源**:应用使用访问令牌访问用户在第三方平台上的数据。 - **刷新令牌**:当访问令牌过期时,...

    jsp开发教程简易教程

    ### JSP开发教程简易教程:全面解析与学习指南 #### JSP基础知识概览 JSP(Java Server Pages)是一种基于Java技术的服务器端脚本语言,用于创建动态网页。它结合了HTML、XML以及Java代码,允许开发者在网页中嵌入...

    简易的Java开源博客Halo搭建教程.docx

    nohup java -jar /opt/halo/halo.jar --spring.profiles.active=prod &> /dev/null & ``` 修改文件权限使其可执行:`chmod +x run.sh` 在终端执行启动脚本:`./run.sh`。这将后台运行Halo博客服务,同时将输出...

Global site tag (gtag.js) - Google Analytics