---恢复内容开始---

最近在实现那个学生信息录入的时候,先是在添加学生的页面添加完,然后想直接调用Conroller层遍历学生的方法,我的意思就是在contoller一个方法怎么直接调用另外一个方法,

这个就需要用到  forward 和redirect 这个两个方法,先看我的StudentController 里面的代码

package zizai.controller;import java.util.List;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import zizai.model.Student;import zizai.service.StudentService;@Controller
@RequestMapping("/student")
public class StudentController {@Resourceprivate StudentService studentService;@RequestMapping("/showAllStudent")  public String showUser(HttpServletRequest request,Model model){  List<Student> students = this.studentService.getAllStudent();  model.addAttribute("students", students);  return "tables";  } @RequestMapping("/index")  public ModelAndView toIndex(HttpServletRequest request){  ModelAndView view = new ModelAndView("addStu");return view;
} @RequestMapping("/addStu")  public ModelAndView addStu(HttpServletRequest request,Model model){        String  name = request.getParameter("name");String id =request.getParameter("id");    String age=request.getParameter("age");int id1=Integer.valueOf(id);int age1=Integer.valueOf(age);String classname=request.getParameter("classname");String sex=request.getParameter("sex");Student stu=new Student();stu.setAge(age1);stu.setClassname(classname);stu.setId(id1);stu.setName(name);stu.setSex(sex);int i=this.studentService.insertStu(stu);String url="addStu";if(i>0){url="redirect:/student/showAllStudent";}else{url="fail";}        ModelAndView view = new ModelAndView(url);return view;} }

forward 转发,如return "forward:/student/showAllStudent"; 浏览器的地址栏不会变,但是有视图返回来

redirect 重定向,如return "redirect:/student/showAllStudent"; 浏览器的地址栏会变。

1 先看看forward:/student/showAllStudent  可以看见用 forward 来进行跳转的话,url 的地址不会改变

2 redirect 重定向,如return "redirect:/student/showAllStudent",这个时候url 里面的地址是会发生变化的

可以看到url 上的地址从ssm03/student/addStu   跳转到 ssm03/student/showAllStudent

如果不用forward 转发和redirect 重定向 的,直接通过url 赋值tables 来访问  tables.jsp,通过tables.jsp里面的form 表单来访问Controller层的showAllStudent的方法,这个时候就调不动里面的方法

如下是我的tables.jsp 的代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html lang="en">
<head>
<title>天元学生列表</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="/ssm03/resources/matrix-admin00/css/bootstrap.min.css" />
<link rel="stylesheet" href="/ssm03/resources/matrix-admin00/css/bootstrap-responsive.min.css" />
<link rel="stylesheet" href="/ssm03/resources/matrix-admin00/css/uniform.css" />
<link rel="stylesheet" href="/ssm03/resources/matrix-admin00/css/select2.css" />
<link rel="stylesheet" href="/ssm03/resources/matrix-admin00/css/matrix-style.css" />
<link rel="stylesheet" href="/ssm03/resources/matrix-admin00/css/matrix-media.css" />
<link href="font-awesome/css/font-awesome.css" rel="stylesheet" />
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700,800' rel='stylesheet' type='text/css'>
</head>
<body><!--sidebar-menu--><div id="content"><div id="content-header"><div id="breadcrumb"> <a href="#" title="Go to Home" class="tip-bottom"><i class="icon-home"></i> Home</a> <a href="#" class="current">Tables</a> </div><h1>天工信息</h1></div><div class="container-fluid"><hr><div class="row-fluid"><div class="span12"><div class="widget-box"><div class="widget-title"> <span class="icon"> <i class="icon-th"></i> </span><h5>信息列表</h5><form action="/ssm03/student/index"  class="btn btn-success" ></div><input type="submit" value="添加"><div class="widget-content nopadding"><table class="table table-bordered table-striped"><thead><tr><th>学号</th><th>学生姓名</th><th>年龄</th><th>性别</th><th>班级</th></tr></thead><tbody><c:forEach var="student" items="${students}" ><tr class="even gradeC"><td align="center" >${student.id}</td><td align="center" >${student.name}</td><td align="center" >${student.age}</td><td align="center" >${student.sex}</td><td align="center" >${student.classname}</td></tr></c:forEach></tbody></table></div></div></div></div></div></div><!--Footer-part--></body>
</html>

这是将 addStu 方法里面的url="tables" 时候,看看效果图,

这个时候可以看见Controller层里面的showAllStudent 的方法,tables.jsp是可以调用到showAllStudent的方法的,因为已经跳转到遍历学生信息的表格去了,只是遍历学生的方法不起作用而已,

这个问题也是可以解决,有两种方法,一个实在Controller 里面改东西,在addStu这个方法直接使用showAllStudent方法,意思是添加完学生信息后,直接调用showAllStudent的方法,

另外一个方法就是在 jsp 里面做文章,多条一步的哈,显示添加完学生后,给他一个中间显示页面,那个中间的显示的jsp页面再调用showAllStudent的方法,那么showAllStudent的方法就可以成功将学生的信息遍历出来了

这里给写出后面一种方法的截图

添加学生成功后,url="List" 的jsp 中去,让后在:List.jsp 里面来调用showAllStudent 的方法,这个时候便可以将学生列表的信息成功的遍历出来

List.jsp的代码如下

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title>建筑产品信息</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet"href="/ssm03/resources/matrix-admin00/css/bootstrap.min.css" />
<link rel="stylesheet"href="/ssm03/resources/matrix-admin00/css/bootstrap-responsive.min.css" />
<link rel="stylesheet"href="/ssm03/resources/matrix-admin00/css/matrix-style.css" />
<link rel="stylesheet"href="/ssm03/resources/matrix-admin00/css/matrix-media.css" />
<linkhref="font-awesome//ssm03/resources/matrix-admin00/css/font-awesome.css"rel="stylesheet" />
<linkhref='http://fonts.googleapis.com/css?family=Open+Sans:400,700,800'rel='stylesheet' type='text/css'>
</head>
<body><div id="content"><div id="content-header"><div id="breadcrumb"><a href="#" title="Go to Home" class="tip-bottom"><iclass="icon-home"></i> Home</a> <a href="#" class="current">天原系统</a></div><h2 ailgn="center">欢迎来到强大的天原系统</h2><div class="row-fluid"><div class="span4"><div class="widget-box"><div class="widget-title"><span class="icon"> <i class="icon-list"></i></span><%--     <h5>${product.name }</h5> --%></div><div class="widget-content"><table><tr><td>学生信息列表</td><td><form class="form-horizontal" method="post"action="/ssm03/student/showAllStudent"><div class="form-actions"><input type="submit" value="查看" class="btn btn-success"></div></form></td></tr><tr><td>建筑信息列表</td><td><form class="form-horizontal" method="post"action="/ssm03/product/getAllProduct"><div class="form-actions"><input type="submit" value="查看" class="btn btn-success"></div></form></td></tr><tr><td>天工信息列表</td><td><form class="form-horizontal" method="post"action="/ssm03/tiangong/showAllTianGong"><div class="form-actions"><input type="submit" value="查看" class="btn btn-success"></div></form></td></tr><tr><td>招聘信息列表</td><td><form class="form-horizontal" method="post"action="/ssm03/work/showAllWok"><div class="form-actions"><input type="submit" value="查看" class="btn btn-success"></div></form></td></tr></table></div></div></div></div></div>
</div><!--Footer-part--><div class="row-fluid"><div id="footer" class="span12">2013 &copy; Matrix Admin. Brought to you by <ahref="http://themedesigner.in/">Themedesigner.in</a></div></div><!--end-Footer-part--><script src="/ssm03/resources/matrix-admin00/js/jquery.min.js"></script><script src="/ssm03/resources/matrix-admin00/js/jquery.ui.custom.js"></script><script src="/ssm03/resources/matrix-admin00/js/bootstrap.min.js"></script><script src="/ssm03/resources/matrix-admin00/js/matrix.js"></script>
</body>
</html>

我们再看看整体的效果图

1.这个是新添加学生的信息

2 添加完学生的信息后,就转到List.jsp页面

3 这个时候再点击查看学生信息列表 右边那个查看按钮就可以查看到学生的全部信息了,在最后面,可以看到我们刚才添加的那个学生的信息

最后,说来说去,最后如果会用上面的 forward 和redirect

forward 转发,如return "forward:/student/showAllStudent";

redirect 重定向,如return "redirect:/student/showAllStudent";

来直接调用 showAllStudent 方法的话,就不会有这么麻烦事了

所以forward 和redirect 这两个方法还是挺好用的,今天的收获就于此!

12:49:20

redirect 重定向

---恢复内容结束---

今天中午炸了,网一炸,电脑一卡,那些页面上的内容好像都不见了,但是现在晚上回来一看,博客园帮我自动保存了,谢谢博客园,没有让我两个小时的心血白费,本来有打算推到重来,现在好啦!

转载于:https://www.cnblogs.com/nn839155963/p/5744768.html

springmvc request foward 和 redirect相关推荐

  1. springmvc的foward和redirect跳转简单解析

    Spring MVC 中,我们在返回逻辑视图时,框架会通过 viewResolver 来解析得到具体的 View,然后向浏览器渲染.假设逻辑视图名为 hello,通过配置,我们 配置某个 ViewRe ...

  2. 《Spring实战》读书笔记--SpringMVC之forward与redirect

    <Spring实战>读书笔记--SpringMVC之forward与redirect 1.forward与redirect介绍 1.1 redirect 重定向,服务器收到请求后发送一个状 ...

  3. foward和redirect的区别

    Foward(转发) 使用: HttpServletRequest.getRequestDispatcher(URL).forward(request, response) 或者 HttpServle ...

  4. 关于foward和redirect的详细描述(比一般的要详细)

    他们是一个Servet跳向另一个Servlet的方法,但是有所不同. 首先,转向(Forward),是由RequestDispatcher对象的forward(HttpServletRequest r ...

  5. request.include和request.foward后是否共享Request和Response的问题

    这两天在细看<深入体验Java_Web开发内幕-核心基础>一书,书比较老了,使用的tomcat和servlet版本差距都比较大.书中提及在foward转发过程中,request对象和res ...

  6. foward redirect

    1.地址栏 forward:请求转发,地址栏不会发生变化 redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL. 2.数据共享 forward: ...

  7. springmvc中Controller方法的返回值

    1.1 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. 1.2 返回void 在controller方法形参 ...

  8. Spring | SpringMVC

    1)        Spring是一个IOC(DI)和AOP容器框架. 1)        Spring的优良特性 依赖注入:DI--Dependency Injection,反转控制(IOC)最经典 ...

  9. 框架 - SpringMVC框架

    框架 - SpringMVC框架 第一章 SpringMVC概述 1.1 SpringMVC简介 1.2 SpringMVC 优点 1.3 第一个注解的 SpringMVC程序 1.4 SpringM ...

最新文章

  1. 2021.4.7 美团买菜后端开发实习生(二面)(含总结)(已oc)
  2. 13.8 线程的安全问题和解决方法
  3. C++ 重载数学运算符
  4. 程序人生001--点滴感悟-随笔01
  5. Qt5 提示:无法启动此程序,计算机丢失Qt5Widgetsd.dll的解决方法
  6. 计算机二级考试题有之前的吗,国家计算机二级上机做对前两题为什么过不了
  7. 如何在应用系统中实现数据权限的控制功能
  8. 2015/8/30 Python基础(4):序列操作符
  9. mysql 2182_MySql常用命令总结
  10. 天猫达尔文商品管理体系通俗简介
  11. linux 查看syn网络日志,Linux下分析SYN flood攻击案例
  12. java语言和裕语言_iApp 裕语言V5.0公测版
  13. Idear常用快捷键
  14. (二)WaveDrom Editor使用教程
  15. 齐博x1新用户手工注册接口
  16. 广州地区常用的DNS解析服务器
  17. QQ聊天记录快速迁移
  18. VREP Remote API工作模式详解(未写完,完成度90%)
  19. 2.3 发光二极管(LED灯)
  20. 2022-04-12 redis过期key删除策略

热门文章

  1. Gnuplot绘图入门1——sin(x)绘制与美化
  2. ar模型matlab fpe,matlabar模型
  3. C链表:“数形结合”让调试更快纠错
  4. 国内外php商城系统 开源、php商城比较
  5. 已连接网络,出现浏览器无法连接到代理服务器
  6. 进击的NB-IoT:满眼望去,全是5G世界的样子
  7. 2023年中国软件开发公司排行榜最新名单排名
  8. 分析生产和库存,靠这一套指标就够了!
  9. 就业速报!二线城市均薪过万,最高19000元
  10. I/O 虚拟化技术 — VFIO