th 表达式的简单使用。
一、使用场景,页面中,循环遍历,获得控制器穿过来的值。
1.1 控制器
/**
* 获得所有的图书信息
* @return
*/
@RequestMapping("/turnIndexPage")
public String turnIndexPage(ModelMap modelMap){
Map<String, Object> resultMap = bookService.selectAllBooks();
if (200 == (Integer)resultMap.get("code")){
List<Book> bookList = (List<Book>) resultMap.get("result");
modelMap.addAttribute("bookList",bookList);
return "index";
}
return "404";
}
1.2 HTML页面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<head>
<meta charset="UTF-8">
<title>首页</title> </head> <h1>欢迎登录图书管理系统</h1> <table border="1px solid black" cellspacing="0" >
<tr>
<th>图书编号</th>
<th>名称</th>
<th>价格</th>
<th>作者</th>
<th>日期</th>
<th>类型</th>
<th>操作</th>
</tr> <!-- 1.1 book,起的名字 1.2 后台的值
1. 写在th 标签内部 each 标签 th:each="book: ${bookList}"
2. 直接跳HTML页面,搞不定,跳到后台控制器,在让它跳转到指定的HTML 页面。
-->
<tr th:each="book:${bookList}">
<td th:text="${book.id}"></td>
<td th:text="${book.bookname}"></td>
<td th:text="${book.price}"></td>
<td th:text="${book.autor}"></td>
<td th:text="${book.bookdate}"></td>
<td th:text="${book.booktype}"></td>
<td>
<a th:href="@{deleteBook(id=${book.id})}">删除</a>
<a th:href="@{updateBook(id=${book.id})}">修改</a>
<a href="toAdd">录入</a>
</td>
</tr> </table> </body>
</html>
1.3 跳到后台,再跳到HTML页面。
/**
*
* 跳转到add 添加页面
* @return
*/
@RequestMapping("/toAdd")
public String toAdd(){
return "add";
}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<head>
<meta charset="UTF-8">
<title>录入书籍</title>
</head>
<body>
<form method="post" action="insertBook">
名称 <input type="text" name="bookname" ><br />
价格 <input type="number" name="price" ><br />
作者 <input type="text" name="autor"><br />
类型 <input type="text" name="booktype" ><br />
<input type="submit" value="提交">
</form> </body>
</html>
二、页面取值。
2.1 控制器
/**
* 获得要修改的信息
* @param book
* @param modelMap
* @return
*/
@RequestMapping("/updateBook")
public String updateBook(Book book,ModelMap modelMap){ Map oneBook = bookService.getOneBook(book.getId());
if (200 == (Integer) oneBook.get("code")){
modelMap.addAttribute("book",oneBook.get("result"));
return "update";
}else {
return "404";
}
}
2.2 页面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="update">
<input type="hidden" name="id" th:value="${book.id}"><br />
名称 <input type="text" name="bookname" th:value="${book.bookname}"><br />
价格 <input type="number" name="price" th:value="${book.price}"><br />
作者 <input type="text" name="autor" th:value="${book.autor}"><br />
类型 <input type="text" name="booktype" th:value="${book.booktype}"><br />
<input type="submit" value="提交">
</form> </body>
</html>
th 表达式的简单使用。的更多相关文章
- EL表达式的简单介绍
EL表达式的简单介绍 一.JSP EL语言定义 E L(ExpressionLanguage) 目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于ECMAScript 和 XPath 表达式 ...
- sql server 公共表达式的简单应用(cte)
一.前言 现在做项目数据访问基本都会选择一种orm框架,它以面向对象的形式屏蔽底层的数据访问形式,让开发人员更集中在业务处理上,而不是和数据库的交互上,帮助我们提高开发效率:例如一些简单的insert ...
- Linq和Lamda表达式的简单处理方式
一 什么是LINQ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. ...
- EL表达式的简单实用
EL表达式 EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方 ...
- 前缀、中缀、后缀表达式以及简单计算器的C++实现
前缀表达式(波兰表达式).中缀表达式.后缀表达式(逆波兰表达式) 介绍 三种表达式都是四则运算的表达方式,用以四则运算表达式求值,即数学表达式的求解. 前缀表达式 前缀表达式是一种没有括号的算术表达式 ...
- Java中Lambda表达式的简单使用
Lambda表达式是Java SE 8中一个重要的新特性.你可以把 Lambda表达式 理解为是一段可以传递的代码 (将代码像数据一样进行传递).可以写出更简洁.更灵活的代码.作为一种更紧凑的代码风格 ...
- (二)Thymeleaf标准表达式之——简单表达式
2. 标准表达式(Standard Expression Syntax) 标准表达式包含以下几个方面: 简单表达式: 变量表达式: ${...} 选择变量表达式: *{...} 消息表达式: #{.. ...
- lambda表达式的简单入门
前言:本人在看<Java核心技术I>的时候对lamdba表达式还不是太上心,只是当做一个Java 8的特性了解一下而已,可是在<Java核心技术II>里面多次用到,所以重新入门 ...
- C# lambda表达式(简单易懂)
前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅.据说它是微软自c#1.0后新增的最重要的功能之一 ...
- [Swust OJ 322]--东6宿舍灵异事件(中缀表达式转化为后缀表达式的简单运用)
题目链接:http://acm.swust.edu.cn/problem/322/ Time limit(ms): 1000 Memory limit(kb): 65535 Descripti ...
随机推荐
- 1374 - Confusion in the Problemset
1374 - Confusion in the Problemset PDF (English) Statistics Forum Time Limit: 2 second(s) Memory ...
- JUC之线程间定制化通信
线程通信之定制化 之前文章中写了下Condition的使用,这里我们详细说下其中的用法: 首先使用Condition需要实例化Lock private Lock lock = new Reentran ...
- 3 - 基于ELK的ElasticSearch 7.8.x技术整理 - 高级篇( 偏理论 )
4.ES高级篇 4.1.集群部署 集群的意思:就是将多个节点归为一体罢了( 这个整体就有一个指定的名字了 ) 4.1.1.window中部署集群 - 了解即可 把下载好的window版的ES中的dat ...
- Java Web程序设计笔记 • 【第7章 会话跟踪技术】
全部章节 >>>> 本章目录 7.1 会话跟踪技术概述 7.1.1 为什么需要会话跟踪 7.1.2 会话的状态和跟踪 7.1.3 会话跟踪技术 7.1.4 会话跟踪工作流程 ...
- Python_类型转换
列表与字符串互相转换 join方法将list转换为string _list = ["a", "b", "c"] # 以".&quo ...
- 工厂模式(python)
以字符串作为传递参数 以类名作为传递参数 来自为知笔记(Wiz)
- Redis_客户端命令和数据操作(3)
更多命令请查找:http://c.biancheng.net/redis_command/ 切换数据库 redis数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库, ...
- MongoDB学习 - 简单使用
1.项目引入pom依赖 <!-- mongodb --><dependency> <groupId>org.springframework.boot</gro ...
- Shell统计每个单词出现的个数
题目链接 题目描述 写一个 bash脚本以统计一个文本文件 nowcoder.txt 中每个单词出现的个数. 为了简单起见,你可以假设: nowcoder.txt只包括小写字母和空格. 每个单词只由小 ...
- [ bootstrap ] 图片内容占用padding的范围,如何解决?
问题描述: 从效果图看到,图片内容占据了padding的范围,怎么解决呢? html代码 <div class="container"> <div class=& ...