SpringMVC(三)之数据回显、url模板映射、转发和重定向

SpringMVC框架之URL模板映射与转发、重定向(附Demo) 在上一篇博客SpringMVC框架之前后端数据交互(附Demo)演示了前后端的数据交互,本篇博客将演示SpirngMVC中的URL模板映射、请求转发、重定向。 关于SpringMVC项目创建、配置,请参考SpringMVC框架之创建第一个项目(IDEA)、SpringMVC框架之前后端数据交互(附Demo),两篇博客尾端都有源码链接,这里不再复述。 一、URL模板映射 所谓的URL模板映射,就是把... 阅读详情

项目搭建请查看上一篇《SpringMVC(二)之注解以及参数封装》,这里不再介绍

数据回显

jstl-1.2.jar

UserController.java

@Controller
@RequestMapping("/user")
public class UserController {
    // 用户列表
    @RequestMapping("list")
    public String list(Model model) {

        List<User> list = new ArrayList<User>();
        // 这里因为没有连接数据库,为了方便,这里造些数据
        User user1 = new User();
        user1.setId(1);
        user1.setUsername("张三");
        user1.setBirthday(new Date(System.currentTimeMillis()));
        user1.setSex("男");
        user1.setAddress("东莞");
        User user2 = new User();
        user2.setId(2);
        user2.setUsername("李四");
        user2.setBirthday(new Date(System.currentTimeMillis()));
        user2.setSex("女");
        user2.setAddress("东莞");
        User user3 = new User();
        user3.setId(3);
        user3.setUsername("王五");
        user3.setBirthday(new Date(System.currentTimeMillis()));
        user3.setSex("男");
        user3.setAddress("东莞");

        list.add(user1);
        list.add(user2);
        list.add(user3);

        model.addAttribute("userList", list);
        return "list";
    }

    // 更新,注意与后面修改为restfull风格后的代码做对比
    @RequestMapping("update")
    public String update(Integer id) {
        System.out.println(id);
        return "success";
    }
}

list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 这里引入jstl标签 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <table border="1" >
        <tr>
            <td>姓名</td>
            <td>生日</td>
            <td>性别</td>
            <td>地址</td>
            <td>操作</td>
        </tr>

        <c:forEach items="${userList }" var="user">
            <tr>
                <td>${user.username }</td>
                <td>${user.birthday }</td>
                <td>${user.sex }</td>
                <td>${user.address }</td>
                <td><a href="${pageContext.request.contextPath }/user/update.do?id=${user.id}">操作</a></td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>

页面

这里写图片描述


url模板映射

我们会发现上面的a标签会带有参数以及后缀在地址栏上显示,这样并不美观,所以这里可以使用restful风格设计

<a href="${pageContext.request.contextPath }/user/update.do?id=${user.id}">操作</a>

主要是为请求restfull设计模式

Restfull软件架构设计模式:请求更间接,更安全,方便于搜索引擎收录

第一步:在web.xml添加以下内容

<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

第二步:修改Controller中的方法

// 更新,与上面为修改前的update方法做对比
@RequestMapping("update/{id}")
public String update(@PathVariable Integer id) {
    System.out.println(id);
    return "success";
}

第三部:修改jsp中的请求地址

<a href="${pageContext.request.contextPath }/rest/user/update/${user.id }">操作</a>

修改前与修改后对比

这里写图片描述
这里写图片描述

原理

这里写图片描述


转发

关键字:forward

1.本类进行转发:
本类方法与方法之间进行forward

方式一:return "forward:list.do";
方式二:return "forward:/user/list.do";

注意:user根路径前面必须有/.

2.跨类进行转发:

方式:return "forward:/items/list.do";

重定向

关键字:redirect
1.本类进行重定向:
本类方法与方法之间进行redirect

方式一:return "redirect:list.do";
方式二:return "redirect:/user/list.do";

2.跨类进行重定向:

方式:return "redirect:/items/list.do";

mvc:annotation-driven标签

<!-- 此配置等价于配置了RequestMappingHandlerMapping、RequestMappingHandlerAdapter
     以及提供json数据格式的支持  -->
<mvc:annotation-driven />

<!-- 配置注解处理器映射器 
    负责寻找Controller
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
    配置注解处理器处理器 
    负责执行Controller
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
-->

上一篇:《SpringMVC(二)之注解以及参数封装》
下一篇:《SpringMVC(四)之requestParam、requestBody、responseBody》

详解spring mvc 请求转发和重定向 主要介绍了详解spring mvc 请求转发和重定向,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 立即下载

相关推荐

Spring MVC参数自动绑定List的解决方法

主要为大家详细介绍了Spring MVC参数自动绑定List的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

SpringMVC转发和重定向, 以及文件功能的处理

本文介绍了如何通过springmvc来进行文件的上传和下载功能并简单的介绍了请求和转发的实现以及使用场景

caomnnnnnn的博客 1707

C#中使用OpenCV的常用函数

c# opencv 常见操作

大黄鸭在发光的专栏 1079

Java项目:ssm校内超市管理系统

本系统分为管理员与普通用户两种角色。采用后端SSM框架,前端BootStrap(前后端不分离)的系统架构模式,实现了基本的超市管理功能;本系统实现了超市管理的基本功能,包括商品库存模块,商品分类模块,供应商管理模块,销售统计模块以及用户管理模块。

m0_74967853的博客 365

手把手教你打造CTF动态靶场

公司想搞一个CTF比赛,需要一个竞赛靶场,于是这个任务就落在了我的身上,平台是利用CTFd框架,基于docker搭建的动态靶场,搭建过程中遇到的坑比较多,这里我会把每一个遇到的坑都指出来。我搭建的是CTFd的3.X的版本。第一次搭建的话,搭建的过程会有些痛苦,但是搭建完成后会越来越熟练,这个平台的可用性还是很高的。由于搭建的过程中遇到的坑太多了,各种各样的问题,所以决定写下这篇文章,把所有的坑都指出来,也算为后边想搭这个平台的小伙伴指一条路。Taps:资源来源:星海安全实验室如果你也对网络安全&黑客。

Python栈 4933

Playwright自动化测试实战:攻克日历时间控件三大策略与Java实现

在Web自动化测试领域,元素定位与交互模拟是核心技术基础,其原理在于通过程序精确识别并操作页面中的DOM元素,以模拟真实用户行为。这项技术的核心价值在于提升测试效率、确保交互逻辑的覆盖度与可靠性,广泛应用于电商、金融、OA等系统的功能验证。日历时间控件作为典型的复杂交互组件,常涉及动态弹出层、多级导航与状态同步,是自动化测试中的常见难点。本文聚焦于使用Playwright工具,针对此类控件深入剖析了三种核心解决策略:从最高效的直接赋值、到全面模拟用户交互的主流方法,再到利用组件特性的混合定位方案,并结合Ja

weixin_28835551的博客 311

springMVC--请求转发和重定向及<mvc>配置

转发和重定向 转发 关键字:forward 本类进行转发: 本类方法与方法之间进行forward 转发方式: 方式一:return ”forward:list.do“; 方式二:return ”forward:/user/list.do“; 方式一:return ”forward:list.do“: //测试转发 @RequestMapping("forward...

hongcaixia的博客 1021

Cesium+Three.js融合实战:从零构建GIS与BIM一体化场景

本文详细介绍了如何将Cesium与Three.js进行技术融合,从零构建GIS与BIM一体化场景。通过环境配置、核心场景搭建、坐标转换、性能优化及交互处理等实战步骤,阐述了Cesium负责宏观地理空间渲染、Three.js处理微观精细BIM模型的协同方案,为智慧城市、数字孪生等应用提供关键技术实现路径。

weixin_29230865的博客 459

Spring MVC的转发与重定向

重定向是将用户从当前处理请求定向到另一个视图(例如 JSP)或处理请求,以前的请求(request)中存放的信息全部失效,并进入一个新的 request 作用域;转发是将用户对当前处理的请求转发给另一个视图或处理请求,以前的 request 中存放的信息不会失效。

unber的博客 930

qtcreator使用远程服务器编译代码

我并没有找到很好的windows上可以用的rsync工具,最后是装了wsl来调用rsync同步到代码后,在用ssh调用linux命令来编译的。安装wsl安装ubuntu启动wsl然后把windows里的ssh文件证书和配置复制到wsl里同时config的key目录需要改一下,这样就可以登录服务器了然后在home目录创建build.sh进行远程编译。

习惯就好zz的专栏 1380

数据结构(超详细讲解!!)第十七节 队列应用(杨辉三角)

杨辉三角

2201_76115387的博客 1375

springmvc中的转发和重定向

转发:客户端发送一次请求到服务器,服务器处理后转发到服务器内另一个servlet,处理后再返回响应.客户端的url地址不会发生改变,能共享request作用域; 重定向:客户端发送一次请求到服务器,服务器返回的响应中包含一个新的url地址;客户端根据响应中的url地址再一次发送请求,地址栏url改变,服务器再次返回响应;总共有两次请求,两次响应;不能共享request作用域; 转发是服务器内部行为,重定向是客户端行为; 一.转发到视图(jsp)(用的多) 1.在handler中,返回值若为字符串

maomaomao321的博客 1512

什么是 PD 电压诱骗?

电压诱骗” 的意思就是,使用某些方法让 PD 充电器误以为设备需要更高的电压,从而让充电器提供比实际需要更高的电压。手机可能只需要 5V,但笔记本电脑可能需要 20V,通过 PD 协议,充电器能够根据设备的需求输出合适的电压和电流。在“电压诱骗”的情况下,你通过某种手段让充电器以为设备需要 12V,于是充电器会按照这个伪造的请求输出 12V,而不是默认的 5V。充电器评估自己的能力,如果可以提供设备需要的电压和电流,它会调整输出电压,从默认的 5V 切换到设备请求的电压(如 12V)。

qq_45430571的博客 2657

SpringMVC注解开发、入门案例、RequestMapping的使用、接收请求参数(基本类型、pojo、包装类型、list、map)、页面回显、URL模板映射、转发与重定向-day02

目录第二节 SpringMVC的注解开发【重要】2.1 注解开发入门案例第一步:修改springmvc的配置文件第二步:修改UserController第三步:测试2.2 RequestMapping的使用用于配置请求路径的映射自定义根路径2.3 接收请求参数封装参数分析1. 接收int、String、Date、数组类型2. 接收pojo类型3. 接收包装类型参数4. 接收集合List类型参数5. 接收集合Map类型参数 第二节 SpringMVC的注解开发【重要】 2.1 注解开发入门案例 第一步:修改s

ShuYY的博客 959

OceanBase迁移平台OMS企业版部署

OceanBase迁移平台OMS企业版部署摘要: 本文档详细介绍了OceanBase迁移平台OMS企业版的部署流程,包含环境准备、OAT部署管理、MetaDB部署等关键步骤。

Sebastien23的博客 519

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SpringMVC系列教程——08URL模板映射讲解

SpringMVC系列教程——08URL模板映射讲解

qq_44932835的博客 248

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SpringMVC系列教程——09转发与重定向及@RequestParam讲解

SpringMVC系列教程——09转发与重定向

qq_44932835的博客 404

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

springmvc的url重定向和转发

springmvc的url重定向和转发 这个网址上必须得传的是username= 而不是name= 当写一个实体类User的时候 可以直接传User

u013313232的博客 331

spring中的url模板映射

URL模版映射 主要是为请求restfull设计模式 Restfull软件架构设计模式:请求更间接,更安全,方便于搜索引擎收录 list.jsp: [html] view plain copy body>   table border="1" style="color: blue">   tr>   td>姓名td>

wwe4023的博客 609

Spring MVC数据绑定(简单数据绑定)

首先,什么是数据绑定呢?        在执行程序时,Spring MVC会根据客户端请求参数的不同,将请求消息中的信息以一定的方式转换并绑定到控制器类的方法参数中。这种将请求消息数据与后台方法参数建立连接的过程就是Spring MVC中的数据绑定。        在数据绑定过程中,Spring MVC框架会通过数据绑定组件(DataBinder)将请求参数串的内容进行类型转换,然后将转换后的值赋...

qq_39411607的博客 5878

服务器如何设置URL重定向

例如:我们的操作是想要yifanse888o.com跳转到www.yifanse999o.com,两台不同的服务器 一:创建站点 我们打开IIS管理器后,先建立一个站点, 选中后打开右侧栏“编辑网站”中的绑定板块。 二:设置HTTP重定向、 因为我们的目标是要求yifanse888o.com跳转到www.yifanse999o.com 所以我们要选择yifanse888o.com后...

weixin_37948260的博客 9465

springmvc 数据回显功能

按下 修改数据之后 修改功能实现-转向修改页面  2)控制层实现准备数据,并转向修改页面 ~ PersonController.java 1 package cn.itcast.springmvc.controller; 2 3 @Controller 4 @RequestMapping(value={"/person"}) 5 public class Person...

weixin_33904756的博客 234

springmvc之视图定位

如果代码写成这样,就表示跳转到页面index.jsp new ModelAndView("index.jsp"); 所谓视图定位,指的是代码还是写成这样,但是会跳转到/WEB-INF/page/index.jsp new ModelAndView("index.jsp"); 步骤1:修改springmvc-servlet.xml 增加 其作用是把视图约定在/

sinat_35608637的博客 1564

SpringMVC(二)之注解以及参数封装

通过示例项目,学习SpringMVC的注解以及参数封装 创建web项目以及导入jar包 项目结构如图 web.xml &amp;amp;amp;amp;lt;?xml version=&amp;amp;amp;quot;1.0&amp;amp;amp;quot; encoding=&amp;amp;amp;quot;UTF-8&amp;amp;amp;quot;?&amp;amp;amp;amp;gt; &amp;amp;amp;am

张育嘉的博客 2808
上一篇: SpringMVC(二)之注解以及参数封装
下一篇: 单独使用Maven下载所需jar包,不需要借助IDE工具
章 鱼
博客等级 码龄10年 203粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值