当前位置: 首页 > news >正文

设计师接私单做网站装修网络公司

设计师接私单做网站,装修网络公司,wordpress 多标签插件,网站建设意见反馈表文章目录 官方文档基本介绍Thymeleaf机制说明Thymeleaf语法表达式运算符th属性迭代条件运算使用Thymeleaf th属性需要注意点 Thymeleaf综合案例需求说明思路分析代码实现 作业布置 官方文档 在线文档: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 离线… 文章目录 官方文档基本介绍Thymeleaf机制说明Thymeleaf语法表达式运算符th属性迭代条件运算使用Thymeleaf th属性需要注意点 Thymeleaf综合案例需求说明思路分析代码实现 作业布置 官方文档 在线文档: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 离线文档: Thymeleaf离线文档 基本介绍 ●Thymeleaf是什么? 1.Thymeleaf 是一个跟 Velocity, FreeMarker 类似的模板引擎, 可完全替代 JSP. 2.Thymeleaf 是一个java类库, 它是一个 xml/xhtml/html5 的模板引擎, 可以作为mvc的web应用的view层. ●Thymeleaf的优点 1.实现JSTL, OGNL的表达式效果, 语法相似, java程序员上手快. 2.Thymeleaf模板页面无需服务器渲染, 也可以被浏览器运行, 页面简洁. 3.SpringBoot支持FreeMarker, Thymeleaf, veocity. ●Thymeleaf的缺点 1.THymeleaf: Thymeleaf is a modern server-side Java template engine for both web and standalone environments. 2.缺点: 并不是一个高性能的引擎, 适用于单体应用. 3.说明: 如果要做一个高并发的应用, 选择前后端分离更好, 但是作为SpringBoot推荐的模板引擎, 我们还是要讲解Thymeleaf的使用, 这样大家在工作中如果使用到, 也能ok. 4.后面我们还要讲解 Vue ElementPlus Axios SpringBoot 前后端分离. Thymeleaf机制说明 1.Thymeleaf 是服务器渲染技术, 页面数据是在服务端进行渲染的. 2.比如: manage.html 中一段thymeleaf代码, 是在用户请求该页面时, 用thymeleaf模板引擎完成处理的(在服务端完成), 并将结果页面返回. 3.因此使用了Thymeleaf, 并不是前后端分离. Thymeleaf语法 表达式 1.表达式一览 表达式名字语法用途变量取值${...}获取请求域, session域, 对象等值选择变量*{...}获取上下文对象消息#{...}获取国际化等值链接{...}生成链接片段表达式~{...}jsp:include 作用, 引入公共页面片段 2.字面量 文本值: ‘zzw hello’, ‘hello’ 数字: 10, 2.32, -2.33 布尔值: true, false 空值: null 变量: name, age(变量不能有空格) 3.文本操作 字符串拼接: 变量替换: age ${age} 运算符 1.数学运算 运算符: - * / % 2.布尔运算 运算符: and, or 一元运算: ! not 3.比较运算 比较: (gt lt ge le) 等式: ! (eq ne) 4.条件运算 If-then:(if) ? (then) If-then-else: (if) ? (then) : (else) Default: (value) ?: (defaultvalue) th属性 html有的属性, Thymeleaf基本都有, 而常用的属性大概有七八个, 其中th属性执行的优先级从1~8, 数字越低优先级越高 1.th:text: 设置当前元素的文本内容, 相同功能的还有th:utext, 两者的区别在于前者不会转义html标签, 后者会. 优先级不高: order7 2.th:value: 设置当前元素的value值, 类似修改指定属性的还有th:src, th:href.优先级不高: order6 3.th:each: 遍历循环元素, 和th:text或th:value一起使用. 注意该属性修饰的标签位置, 优先级很高: order2 4.th:if: 条件判断, 类似的还有th:unless, th:switch, th:case. 优先级较高: order3 5.th:insert: 代码块引入, 类似的还有th:replace, th:include, 三者的区别较大, 或使用不恰当会破坏html结构, 常用于公共代码块提取的场景.优先级最高: order1 6.th:fragment: 定义代码块, 方便被th:insert引用, 优先级最低: order8 7.th:object: 声明变量, 一般和*{}一起配合使用, 达到偷懒的效果.优先级一般, order4 8.th:attr: 修改任意属性, 实际开发中用的较少, 因为有丰富的其它th属性帮忙, 类似的还有th:attrappend, th:attrprepend. 优先级一般, order5 迭代 如果没有走服务器渲染, 显示的是默认的值. 条件运算 用th:href取得的值来替换href属性 使用Thymeleaf th属性需要注意点 1.若要使用Thymeleaf语法, 首先要声明名称空间: xmlns:thhttp://www.thymeleaf.org 2.设置文本内容th:text, 设置input的值th:value, 循环输出th:each, 条件判断th:if, 插入代码块th:insert, 定义代码块th:fragment, 声明变量th:object 3.th:each的用法需要格外注意, 打个比方: 如果你要循环一个div中的p标签, 则th:each属性必须放在p标签上. 若你将th:each属性放在div上, 则循环的将是整个div. 4.变量表达式中提供了很多的内置方法, 该内置方法使用#开头, 请不要与#{}消息表达式弄混. Thymeleaf综合案例 需求说明 说明: 使用SpringBoot Thymeleaf 完成简单的用户登录, 列表功能. 要求: 1.用户名未输入, 提示信息. 2.密码不是666, 提示不合法, 将错误信息回显 3.登陆成功在用户列表页面显示用户列表. 思路分析 说明: 使用SpringBoot Thymeleaf完成简单的用户登录. 代码实现 1.创建项目, 项目名使用springboot-usersys, 这里使用灵活创建项目方式. 2.在pom.xml引入lombok, 并切换一下springboot版本 !--导入springboot父工程-规定写法-- parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.3/version /parentdependencies!--导入web项目场景启动器, 会自动地导入和web开发相关的所有依赖[库/jar]--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--引入lombok, 使用版本仲裁--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency /dependencies3.引入spring-boot-configuration-processor, 在前面我们用过 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactId /dependency4.引入thymeleaf-start: 项目会完成自动配置, 程序员按照规则开发即可 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId /dependency5.springboot系列三: sprintboot自动配置 6.类路径下引入static资源 7.创建templates/login.html(该目录不能直接访问) !DOCTYPE html html langen headmeta charsetUTF-8title用户登录/title /head body bgcolor#CED3FE img srcimages/1.GIF div styletext-align: center;h1用户登陆/h1form action# methodpostlabel stylecolor: red;/labelbr用户名input typetext stylewidth:150px namenamebr密 码input typepassword stylewidth:150px namepasswordbrinput typesubmit value登录input typereset value重新填写/form /div /body /html8.创建src/main/java/com/zzw/springboot/controller/IndexController.java Controller public class IndexController {//编写方法, 转发到 adminLogin.html(登陆页面)GetMapping(value {/, /login})public String login() {/*** 解读* 1.这里我们引入了starter-thymeleaf* 2.这里就会直接使用视图解析到 thymeleaf 下的模板文件 adminLogin.html*/return adminLogin;} }9.启动, 浏览器请求 http://localhost:8080/ 10.创建src/main/java/com/zzw/springboot/bean/Admin.java Data AllArgsConstructor NoArgsConstructor public class Admin {private String name;private String password; }11.创建src/main/java/com/zzw/springboot/bean/User.java Data AllArgsConstructor NoArgsConstructor public class User {private Integer id;private String name;private String password;private Integer age;private String email; }12.创建src/main/java/com/zzw/springboot/controller/AdminController.java springboot支持复杂参数 Controller public class AdminController {//响应用户的登录请求PostMapping(/login)public String login(Admin admin, HttpSession session, Model model) {//验证用户是否合法if (StringUtils.hasText(admin.getName()) 666.equals(admin.getPassword())) {//合法, 携带user信息, 重定向到manage.html//回忆java web知识, 不使用请求转发, 防止刷新页面会重复提交//这里我们为什么是写的 manage.html, 因为这样可以更加明确地表示到哪个页面//manage.html 表示去找 方法的映射路径为 manage.htmlreturn redirect:/manage.html;} else {//不合法, 返回登陆页面return adminLogin;//走Thymeleaf的视图解析器}}//处理用户请求 manage.htmlGetMapping(/manage.html)public String mainPage() {//用集合模拟用户数据, 放入到request域中, 并显示return manage;//这里是我们的视图解析器,到 templates/manage.html} }13.创建 src/main/resources/templates/manage.html !DOCTYPE html html langen headmeta charsetUTF-8title管理后台/title /head body bgcolor#CED3FE img srcimages/1.GIF/ a href#返回管理界面/a  a href#安全退出/a   欢迎您:XXX hr/ div styletext-align: centerh1管理雇员~/h1table border1px cellspacing0 bordercolorgreen stylewidth:800px;margin: autotr bgcolorpinktdid/tdtdname/tdtdpwd/tdtdage/tdtdemail/td/trtrtda/tdtdb/tdtdc/tdtdd/tdtde/td/tr/tablebr/ /div hr/ img srcimages/logo.png/ /body /html14.回填form action“login” method“post”, 相对路径是参考浏览器地址栏 不用回填, 因为action#就是action/, 被解析成 http://localhost:8080/, 没有问题. 15.启动浏览器, http://localhost:8080/login, 用户名密码错误, 停留在登陆页面. 校验正确, 进入manage.html 16.补充AdminController.java //处理用户请求 manage.html GetMapping(/manage.html) public String mainPage(Model model) {//用集合模拟用户数据, 放入到request域中, 并显示ListUser users new ArrayList();users.add(new User(1, 张三, 123456, 23, 张三163.com));users.add(new User(2, 李四, 123456, 24, 李四163.com));users.add(new User(3, 王五, 123456, 25, 王五163.com));users.add(new User(4, 赵六, 123456, 26, 赵六163.com));users.add(new User(5, 田七, 123456, 27, 田七163.com));//将数据放入到request域中model.addAttribute(users, users);return manage;//这里是我们的视图解析器,到 templates/manage.html }17.补充manage.html, 显示用户列表 !DOCTYPE html html langen xmlns:thhttp://www.thymeleaf.org headmeta charsetUTF-8title管理后台/title /head body bgcolor#CED3FE img srcimages/1.GIF/ a href#返回管理界面/a  a href#安全退出/a   欢迎您:XXX hr/ div styletext-align: centerh1管理雇员~/h1table border1px cellspacing0 bordercolorgreen stylewidth:800px;margin: autotr bgcolorpinktdid/tdtdname/tdtdpwd/tdtdage/tdtdemail/td/trtr bgcolor#ffc0cb th:eachuser:${users}td th:text${user.id}a/tdtd th:text${user.name}b/tdtd th:text${user.password}c/tdtd th:text${user.age}d/tdtd th:text${user.email}e/td/tr/tablebr/ /div hr/ img srcimages/logo.png/ /body /html18.测试 19.修改login.html (1)显示登录错误信息 //不合法, 请求转发, 返回登陆页面 model.addAttribute(error, 用户名或密码错误); return adminLogin;//走Thymeleaf的视图解析器label stylecolor: red th:text${error}/labelbr/ 用户input typetext stylewidth:150px namenamebr(2)修改提交的action form action# th:action{/login} methodpost(3)处理非法登录, 防止非法进入manage.html Controller public class AdminController {//响应用户的登录请求PostMapping(/login)public String login(Admin admin, HttpSession session, Model model) {//验证用户是否合法if (StringUtils.hasText(admin.getName()) 666.equals(admin.getPassword())) {//将登陆用户保存到sessionsession.setAttribute(loginAdmin, admin);//合法, 携带user信息, 重定向到manage.html//回忆java web知识, 不使用请求转发, 防止刷新页面会重复提交//这里我们为什么是写的 manage.html, 因为这样可以更加明确地表示到哪个页面//manage.html 表示去找 方法的映射路径为 manage.htmlreturn redirect:/manage.html;} else {//不合法, 请求转发, 返回登陆页面model.addAttribute(error, 用户名或密码错误);return adminLogin;//走Thymeleaf的视图解析器}}//处理用户请求 manage.htmlGetMapping(/manage.html)public String mainPage(Model model,SessionAttribute(value loginAdmin, required false) Admin admin) {//这里暂时在方法中验证, 后面我们统一使用拦截器if (admin null) {model.addAttribute(error, 请先登录);return adminLogin;//请求转发到 templates/adminLogin.html}//用集合模拟用户数据, 放入到request域中, 并显示ListUser users new ArrayList();users.add(new User(1, 张三, 123456, 23, 张三163.com));users.add(new User(2, 李四, 123456, 24, 李四163.com));users.add(new User(3, 王五, 123456, 25, 王五163.com));users.add(new User(4, 赵六, 123456, 26, 赵六163.com));users.add(new User(5, 田七, 123456, 27, 田七163.com));//将数据放入到request域中model.addAttribute(users, users);return manage;//这里是我们的视图解析器,到 templates/manage.html} }(4)登陆成功后信息显示, 行内写法 欢迎您:[[${session.loginAdmin.name}]]5)安全退出 a href# th:href{/}安全退出/a作业布置 1.把前面我们学过的接收参数相关注解, 自定义转换器, 处理JSON, 内容协商, 相关代码和案例, 自己写一遍, 一定要自己写一遍, 否则没有印象, 理解不会深入. 2.将Thymeleaf用户管理 改成 妖怪管理列表, 字段做相应的改变, 进行联系. 1)Monster [id, name, skill, age, sal, birth] 2)基本界面保持不变 3)在完成过程中, 小伙伴会遇到各种问题, 要开始培养自己独立解决问题的能力了.
http://www.hkea.cn/news/14300495/

相关文章:

  • 金融业反洗钱培训网站网站建设流程及相应技术
  • 进一步加强门户网站建设的通知seo外链推广工具下载
  • 是做网站设计好还是杂志美编好用asp制作一个简单的网站
  • 平面设计找图网站关于医院建设网站的请示
  • 网站设计知名企业网站怎么更改关键词
  • 昆明网站建设服务公司网站建设项目可行性研究报告
  • 网站公司谁家好wordpress论坛哪个功能全面
  • 做网站挂广告赚钱犯法吗开发公司运营部职责
  • 17zwd一起做网站教学视频做快递网站制作
  • 文字堆积网站微信公众号和网站建设的意义
  • c2c模式的典型网站优秀网站及网址
  • 锡盟建设工程造价工程管理网站推广网站哪家做的好
  • 百度的合作网站有哪些网络营销软文范文
  • 张家港建网站费用域名网站平台
  • 网站建设的重点wordpress 分页seo
  • 免费网站部署注册公司100万意味着什么
  • 创建一个自己的网站的步骤静态网站建设的PPT
  • 展示展览设计公司seo博客教程
  • 江苏免费建站网站建设公司青岛
  • 中山网站建设哪家好wordpress微信查看密码破解
  • 网站建设需要的设备和软件公司网站需求
  • 给前端做网站的图片叫什么软件自助游网站开发分析报告
  • 网站建设解决方案好处北京好的设计公司有哪些
  • 南阳微网站开发个人可以做网站么
  • 如何做网站编辑 ?]技术北京网站建设 shwl
  • 关键词代发排名首页百度seo优化规则
  • 云南网站建设价格低it外包公司怎么找
  • 专业从事成都网站建设网站开发费属于软件费吗
  • 哪些网站做的不好用公司企业网站制作需要多少钱
  • ps做网站ui青岛网站建设服务平台