springmvc(5):小结,通过map数据模型传递数据展示一个表

SpringMVC(3)——SpringMVC域对象 进入上图的步骤五的代码块,进入到 org\springframework\web\servlet\DispatcherServlet.java 这个类,发现这个ModelAndView类型的mv变量接收了被一个ha.handle方法执行后返的返回值,而这个ha.handle方法最终也会调用请求控制器的方法里面方法,最终请求控制器返回的还是ModelAndView类型对象被mv变量接收。说明:对Map操作,就是像往request域对象操作共享数据一样,然后返回字符串告诉视图渲染器即可,下面演示会更加清楚。 阅读详情

        今天实现了一个小例子,利用 springmvc 实现对数据的展示,没有使用数据库。后台的静态数据封装好了(getAll()方法,利用map.value()),利用SpringMVC_处理模型数据之Map,然后在显示文件 list.jsp 输出数据值(引入使用了JSTL标签<c ></c>)。

handlers:

package com.springmvc.crud.handlers;

import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.springmvc.crud.dao.EmployeeDao;

@Controller
public class EmployeeHandler {
	
	private EmployeeDao employeeDao ;
	
	@RequestMapping("/emps")
	public String list(Map<String,Object> map){
		System.out.println("111");
		map.put("employees", employeeDao.getAll());
		return"list";
	}
	
}

list.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
   
<!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>
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
	$(function(){
		$(".delete").click(function(){
			var href = $(this).attr("href");
			$("form").attr("action", href).submit();			
			return false;
		});
	})
</script>
</head>
<body>
	//JSTL的标签
	<c:if test="${empty requestScope.employees }">
		通过使用标签库判断请求域的内容是否为null,检查得到没有任何员工信息..
	</c:if>
	<c:if test="${!empty requestScope.employees }">
		<table border="1" cellpadding="10" cellspacing="0">
			<tr>
				<th>ID</th>
				<th>LastName</th>
				<th>Email</th>
				<th>Gender</th>
				<th>Department</th>
				<th>Edit</th>
				<th>Delete</th>
			</tr>
			
			<c:forEach items="${requestScope.employees }" var="emp">
				<tr>
					<td>${emp.id }</td>
					<td>${emp.lastName }</td>
					<td>${emp.email }</td>
					<td>${emp.gender == 0 ? 'Female' : 'Male' }</td>
					<td>${emp.department.Department }</td>
					<td><a href="">Edit</a></td>
					<td><a href="">Delete</a></td>
				</tr>
			</c:forEach>
		</table>
	</c:if>
	<h1>hello</h1>
	employee_lists:" ${requestScope.employees}"
</body>
</html>


web.xml、dispacherservlet.cml 和 数据实体类代码入下:

1.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">

	<!-- 配置 DispatcherServlet -->
	<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc.xml</param-value>
		</init-param>	
		
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<!-- 
	配置 org.springframework.web.filter.HiddenHttpMethodFilter: 可以把 POST 请求转为 DELETE 或 POST 请求 
	-->
	<filter>
		<filter-name>HiddenHttpMethodFilter</filter-name>
		<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>HiddenHttpMethodFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

2.springmvc.cml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
	<!-- 配置自定扫描的包 -->
	<context:component-scan base-package="com.springmvc.crud"></context:component-scan>

	<!-- 配置视图解析器: 如何把 handler(xxx.java的method)方法 返回值return_value 解析为实际的物理视图 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/view/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>


</beans>

3.EmployeeDao.java

package com.springmvc.crud.dao;


import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import com.springmvc.crud.entities.Department;
import com.springmvc.crud.entities.Employee;


public class EmployeeDao {
	private static Map<Integer, Employee> employees = null;
	
	private DepartmentDao departmentDao;
	
	static{
		employees = new HashMap<Integer, Employee>();

		employees.put(1001, new Employee(1001, "E-AA", "aa@163.com", 1, new Department(101, "D-AA")));
		employees.put(1002, new Employee(1002, "E-BB", "bb@163.com", 1, new Department(102, "D-BB")));
		employees.put(1003, new Employee(1003, "E-CC", "cc@163.com", 0, new Department(103, "D-CC")));
		employees.put(1004, new Employee(1004, "E-DD", "dd@163.com", 0, new Department(104, "D-DD")));
		employees.put(1005, new Employee(1005, "E-EE", "ee@163.com", 1, new Department(105, "D-EE")));
	}
	
	private static Integer initId = 1006;
	
	public void save(Employee employee){
		if(employee.getId() == null){
			employee.setId(initId++);
		}
		
		employee.setDepartment(departmentDao.getDepartment(employee.getDepartment().getId()));
		employees.put(employee.getId(), employee);
	}
	
	public Collection<Employee> getAll(){
		return employees.values();
	}
	
	public Employee get(Integer id){
		return employees.get(id);
	}
	
	public void delete(Integer id){
		employees.remove(id);
	}
}

4.DepartmentDao.java

package com.springmvc.crud.dao;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import com.springmvc.crud.entities.Department;

public class DepartmentDao {

	private static Map<Integer, Department> departments = null;
	
	static{
		departments = new HashMap<Integer, Department>();
		
		departments.put(101, new Department(101, "D-AA"));
		departments.put(102, new Department(102, "D-BB"));
		departments.put(103, new Department(103, "D-CC"));
		departments.put(104, new Department(104, "D-DD"));
		departments.put(105, new Department(105, "D-EE"));
	}
	
	public Collection<Department> getDepartments(){
		return departments.values();
	}
	
	public Department getDepartment(Integer id){
		return departments.get(id);
	}
}

5.Employee.java

package com.springmvc.crud.entities;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.NumberFormat;

public class Employee {
	private Integer id;
	private String lastName;
	private String email;
	//1 male, 0 female
	private Integer gender;
	
	private Department department;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Integer getGender() {
		return gender;
	}

	public void setGender(Integer gender) {
		this.gender = gender;
	}

	public Department getDepartment() {
		return department;
	}

	public void setDepartment(Department department) {
		this.department = department;
	}
	
	
	public Employee(Integer id, String lastName, String email, Integer gender,
			Department department) {
		super();
		this.id = id;
		this.lastName = lastName;
		this.email = email;
		this.gender = gender;
		this.department = department;
	}

	@Override
	public String toString() {
		return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", gender=" + gender
				+ ", department=" + department + "]";
	}

	public Employee() {
		// TODO Auto-generated constructor stub
	}
}

6.Department.java

package com.springmvc.crud.entities;

public class Department {
	private Integer id;
	private String Department;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getDepartment() {
		return Department;
	}
	public void setDepartment(String department) {
		Department = department;
	}
	public Department(int id, String department) {
		super();
		this.id = id;
		Department = department;
	}
	public Department() {
		super();
		// TODO 自动生成的构造函数存根
	}
	@Override
	public String toString() {
		return "Department [id=" + id + ", Department=" + Department + "]";
	}
	
}




基于Simulink的电机热阻模型建立与仿真 本文详细介绍了基于Simulink的电机热阻模型建立方法。通过将电机传热路径分解为5段关键热阻(绕组内部、槽绝缘、铁芯、机壳、冷却系统),采用Simscape Thermal模块构建热阻网络模型。重点阐述了参数化热阻计算、实验数据校准、不同设计方案对比等关键步骤,并以15kW车用PMSM为例演示建模过程。文章还分享了非线性热阻处理、多维网络构建等高级技巧,指出该模型在热设计迭代、散热匹配、故障诊断等方面的重要工程价值,为电机热安全设计提供了有效的数字化解决方案。 阅读详情

相关推荐

三维重建之条纹投影结构光(一)

该系列为条纹投影结构光学习笔记,一共分为四篇。第一篇记录文献阅读的笔记,对重要知识点进行摘录介绍。 本篇以理论知识推导为主,主要从以下三个方面进行介绍,首先介绍条纹投影的三角测量原理;然后介绍相位主值的求解和相位展开;最后介绍相位和高度的模型,即相高模型。本篇博文不涉及具体的代码实现。 条纹投影结构光测量原理 ...

beyond951的博客 3万+

SpringMVC中将数据输出到页面的几种常用方式

想要将数据拿到页面给展现出来,最容易想到的是放到WEB域中,然后再取出,这篇文章记录一下不同于传统的WEB域数据输出的几种方式 使用 Map、Model、ModelMap进行传值 Spring MVC 在内部使用了一个org.springframework.ui.Model接口存储模型数据 具体步骤: 1、Spring MVC 在调用方法前会创建一个隐含的模型对象作为模型数据的存储容器。 2、如...

weixin_44339867的博客 2313

欧姆龙PMAC CK3M控制器新手避坑指南:从开箱到EtherCAT总线配置的完整流程

本文详细介绍了欧姆龙PMAC CK3M控制器的完整配置流程,从开箱检查到EtherCAT总线配置,特别针对新手常见问题提供避坑指南。内容包括硬件连接、软件安装、EtherCAT主站初始化、从站配置、电机参数设置等关键步骤,帮助工程师快速掌握PMAC控制器的使用技巧。

weixin_42532938的博客 388

SpringMVC 前后台传参(对象集合,Map参数)

springmvc

shuo642432980的博客 9505

告别绕线!用Altium Designer从零设计一个PCB平面变压器(附3D模型)

本文详细介绍了如何使用Altium Designer从零设计一个PCB平面变压器,包括磁芯选型、电气参数计算、PCB设计实战技巧以及3D验证与生产输出。通过将绕组直接集成到PCB层中,配合嵌入式磁芯,实现了小型化、高功率密度的电源设计,适用于中低电流、高频应用场景。附3D模型,帮助读者快速掌握这一创新设计流程。

weixin_33716154的博客 442

SAP Parallel Accounting(平行分类账业务)配置及操作手册【适用于多国家会计准则】

在SAP系统中,分类账(Ledger)是用于会计核算的核心概念,它允许企业根据不同的会计原则和货币进行财务记录。定义分类账是配置平行账(Parallel Accounting)的第一步。分类账的创建:通过事务代码OX18可以创建新的分类账。通常,一个SAP系统会有一个主分类账(如0L),它代表法定会计和实时传输至管理会计(CO)的账本。分类账属性:在创建分类账时,需要定义其属性,如会计年度变式、货币、会计原则等。这些属性将决定分类账的核算规则和适用性。

数字化2025 4615

springmvc传入map至前端

还是之前推荐人的那个功能,因为提交了多条件的内容到后台 然后保存至数据库,那么这些数据该如何回显呢?这里就需要使用传入map对象了 具体的ServeltImpl如下: 页面有几个表的数据 可以将每个表查询到的数据都统一放到一个map中 然后将这个map传到页面上,页面会根据map的key名进行拆分,具体的封装见下service层: @Override public Map selec

toString的博客 4558

仿真模型简单介绍

同时,各种以伯克利的Spice仿真程序的算法为核心的商用Spice电路仿真工具也随之产生,运行在PC和UNIX平台,许多都是基于原始的SPICE2G6版的源代码,这是一个公开发表的版本,它们都在Spice的基础上做了很多实用化的工作,比较常见的Spice仿真软件有HSpice、Pspice、Spectre、Tspice、SmartSpcie、IsSpice等,虽然它们的核心算法雷同,但仿真速度、精度和收敛性却不一样,其中以Synopsys公司的Hspice和Cadence公司的Pspice最为著名。...

小幽余生不加糖 8001

SpringMVC @RequestBody 用map接收请求参数的问题解决

遇到个跨域调用,因为传个我的参数不定,所以需要通过map来接收参数并进行签名验证等操作 理所当然的写出了下面的代码,但是发现map里并没有获取到传来的key-value值 @RequestMapping(value = "/callback", produces = "text/html;charset=UTF-8")  @ResponseBody  publi

xiaowu2017的博客 5万+

高通平台开发系列讲解(USB篇)MBIM协议详解

📢本文主要介绍高通平台USB网卡MBIM协议。

内核笔记 5438

【LAMMPS学习】五、LAMMPS命令(8) Pair_style 势

所有LAMMPS pair_style命令如下表所示。有些样式有加速版本。这由括号中的附加字母表示:g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t = OPT。

荷塘阅色 3016

springmvc 接受 map类型的参数

spring mvc 值传递: 利用Map可以实现 无需依赖实体对象加载多个不同类型的参数   Jsp页面正常的封装数据 : 例如: Controller层可以接受的参数 @RequestMapping("/Test") Test(@RequestParam Map map){ String name = map.get("name"); String tex

yang_yc的博客 2万+

【Bug已解决】openclaw max turns reached / Tool calls exceeded limit — OpenClaw 最大轮次超限解决方案

OpenClaw 在执行过程中达到最大轮次限制任务未完成,本质是 --max-turns 设置过小或任务过于复杂。文中给出增加轮次、--continue 继续、分步执行等完整方案。

一键难忘的博客 5505

数据之桥:深入Spring MVC中传递数据给视图的实用指南

在Spring MVC中,将数据传递给视图是构建动态Web应用的关键环节,本文将深入研究这一过程的实现和最佳实践。我们将详细介绍如何使用Model对象、@ModelAttribute注解、ModelAndView对象等方式传递数据给视图,以及如何在JSP、Thymeleaf等视图技术中获取和展示这些数据。

学而时习之,不亦说乎?温故而知新,可以为师矣! 9147

假人有限元模型

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SpringMVC向页面传递数据的五种方法

SpringMVC,既然被称作MVC,那么它肯定也包含一系列的,从页面请求到业务逻辑一整套的完整的流程,今天给大家介绍一下SpringMVC向页面传递数据的五种方式。第一种:使用ModelMapModelMap对象主要用于传递控制方法传递数据到结果页面。取值的时候可以直接使用EL表达式输出存放的key值。代码如下:    @RequestMapping("/test1") public Strin...

qq_41450893的博客 1533

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

浅谈SpringMVC之request请求转发传递数据

浅谈SpringMVC之request请求转发传递数据

weixin_47268883的博客 681

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SpringMVC中返回数据Model,ModelAndView,ModelMap的区别

controller层的方法处理完后要返回视图,SpringMVC支持如下的返回方式: ModelAndView, Model, ModelMap, Map,View, String, void 1.ModelAndView @RequestMapping("/show1") public ModelAndView show1(HttpServletRequest request...

swebin的专栏 3478

springmvc 响应封装_SpringMVC框架 第5章 处理响应数据

第5章 处理响应数据5.1 SpringMVC输出模型数据概述5.1.1提供了以下几种途径输出模型数据ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据Map 及 Model: 入参为 springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处...

weixin_39849800的博客 204

SpringMVC(十):SpringMVC 处理输出模型数据之Map及Model

Spring MVC提供了以下几种途径输出模型数据: 1)ModelAndView:处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据; 2)Map及Model:处理方法入参为org.springframework.ui.Model、org.springframework.ui.ModelMap或java.util.Map时,处理方法返回时,Map中的数据会自动被...

weixin_33755557的博客 294

SpringMvc框架(视图和视图解析器)

目录,更新ing,学习Java的点滴记录   目录放在这里太长了,附目录链接大家可以自由选择查看--------Java学习目录 SpringMvc知识 第一篇---->SpringMvc初识|MVC|三层架构 第二篇---->IoC容器上下文和映射请求上下文 第三篇---->熟悉基本开发流程 第四篇---->接收各类请求参数的方式 第五篇---->获取请求中的Request,Session,Cookie等对象属性 第六篇---->拦截器开发 处理模型数据 1 介绍 视

qq_41649001的博客 1451

SpringMvc返回页面参数的几种方式

现象: springmvc将参数返回页面用于展示等功能方法: 1:通过map传参数 2:页面$获取 3:通过model 4:将参数放入request中 5:获取request中的值 6:放入modelandview中

细节打败一切 4832

SpringMVC--响应数据传出

响应数据传出1.   SpringMVC 输出模型数据概述提供了以下几种途径输出模型数据:l  ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据l  Map 及 Model: 入参为 org.springframework.ui.Model、org.springframework.ui.ModelMap或 java.uti.Map ...

KamRoseLee的博客 2334

【SpringMVC 笔记】5、将数据传给页面的方法

目 录1)在方法处传入Map、Model、ModelMap2) 方法返回值为 ModelAndView对象3)SpringMVC 提供一个注解@SessionAttributes(只能标注在类上)可以让数据保存在session域中4) Spring mvc提供注解@ModelAttribute(可用在方法和参数上) 1)在方法处传入Map、Model、ModelMap 这些参数中保存的数据会放在请求域中,可以在页面获取${requestScope.msg} 三者的关系:Map、Model、Model

JJ_Notebook的博客 364

数据模型之Model、ModelMap和ModelAndView的关系

1. 引言 2. 在SpringMVC中三者关系的几点说明 3. Model 4. ModelMap 5. ModelAndView 1. 引言 当从控制器获取数据后,会装载数据到数据模型和视图中,然后将视图名称转发到视图解析中,通过视图解析器解析后得到最终的视图,最后将数据模型渲染到视图中,展示最终的结果给用户。 2. 在SpringMVC中三者关系的几点说明 为了进一步定义数据模型功...

debug 838

Springmvc向页面传递数据方法

1.通过HttpServletRequest 的setAttribute方法存值,然后在页面取出 2.通过HttpServletRequest获得session,然后通过session的setAttribute方法存值,然后在页面取出 3.通过MapAndView存值传值 4.通过Map传值 map.put("names", Arrays.asList("caoyc","zhh","c

kangkang_style的博客 500

SpringMVC知识总结

1.MVC 设计模式了解 MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC 的目的是将 M 和 V 的实现代码分离,使同一个程序可以有不同的表现形式。其中,View 的定义比较清晰,就是用户界面。 总结: 视图层(View):负责格式化数据并把它们呈现给用户,包括数据展示、用户交互、数据验证、界面设计等功能。 控制层(Controller):负责接收并转发请求,对请求进行处理后,指定视图并将响应结果发送给客户端。

贝la的博客 881
上一篇: SpringMVC(9):JSP报错:#{...} is not allowed in template text
下一篇: 再出发,我的梦
后台技术汇
博客等级 码龄11年 670粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后台技术汇

对你的帮助,是对我的最好鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值