博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转--Spring MVC : Java模板引擎 Thymeleaf (三)
阅读量:6084 次
发布时间:2019-06-20

本文共 1850 字,大约阅读时间需要 6 分钟。

原文:http://www.csdn.com/html/topnews201408/49/1349.htm

 

下面以构造一个表单开始,讲解 Thymeleaf的用法。为了演示方便,还是以经典的注册为例。

这是Thymeleaf的form的形式,

 

action="#"是固定部分,因为action是由th:action指出。@符号是Thymeleaf对URL表达的方式。这是本文的第一个知识点。

 

 

  • URL表达式

 

首先是绝对路径,

 

但最常用的肯定是相对路径。很多朋友把上下文相对路径和服务器相对路径混为一谈,其实它们是不同的。上下文相对路径都是以 / 开头的,比如是你的一个应用myapp部署在tomcat下,你可以用http://localhost:8080/myapp访问它,这里的myapp就是上下文名称。这时,

 

解析后就是,

 

服务器相对路径和它区别是,服务器相对路径不会假设你的资源在应用上下文内,(你可能部署多个应用),也就是它允许你访问在同一个服务器的其他上下文。比如,

 

解析后就是,

 

当然还有一种相对路径(相对协议的),实际上是绝对路径,

 

//code.jquery.com/jquery-1.10.2.js}" >

解析后就是,

 

接下来是URL的添加参数问题,

 

解析后,

 

多个参数可以在()内用逗号隔开。

下面的形式也是支持的,请细细体会,

 

解析后,

 

还有一个概念,叫URL fragment,什么是URL Fragment呢?

上面两张图基本说明了url fragment是什么了。

 

 

解析后,

 

下一个知识点是th:object,

 

  • th:object

 

该属性在Thymeleaf很常见,但form会强制要求你写这个。为了整合Spring,它对form里面的th:object规定如下:

 

  1. 必须是变量表达式(${...}),代表模型的名字,且不能向模型的属性导航,就是${a}合法,但${a.b}不合法
  2. form内不能有其他th:object,也就是HTML的表单不能嵌套
你可能猜到,这个object就是向后台传递数据的。
在stackoverflow有个提问,"send datas from html to controller in thymeleaf?",采纳的答案是这样的:
controller:
@RequestMapping(value = "/processForm", method=RequestMethod.POST)public String processForm(@ModelAttribute(value="foo") Foo foo) {  ...}
html:
 
Foo.java
public class Foo {  private String bar;  public String getBar() {    return bar;  }  public void setBar(String bar) {    this.bar = bar;  }}
看完之后,你肯定就能豁然开朗了。
 
还有个知识点是 th:field。
 
  • th:field
这个属性在Spring-mvc里很重要,承担着绑定后台Bean属性的重任,这和JSP标签里的path很像。
对不同类型的input,th:field有些差异。这个之后再说。
要记住的是,th:field必须是选择表达式(*{...})。
 
最后,你可能对前面提到的表达式有疑问了。
变量表达式 ${...}就是OGNL表达式。如果你使用springstandard,就是Spring表达式(SpEL)。
给个例子你就明白了,
 
选择表达式*{...}很像变量表达式,不同在于,它执行的是前面选择的对象。
...
... ...
前面选择了book,接下来就按照它求值。
 
还有一个表达式,前面没有出现。国际化表达式#{...},顾名思义是处理国际化的。
...
...
... ...
国际化资源一般是在.properties文件定义。

转载于:https://www.cnblogs.com/mochaMM/p/Thymeleaf.html

你可能感兴趣的文章
高仿UC浏览器弹出菜单效果
查看>>
Ubuntu忘记密码,进不了系统的解决方法
查看>>
[原创]白盒测试技术思维导图
查看>>
<<Information Store and Management>> 读书笔记 之八
查看>>
Windows 8 开发之设置合约
查看>>
闲说HeartBeat心跳包和TCP协议的KeepAlive机制
查看>>
MoSQL
查看>>
Hibernate多对一外键单向关联(Annotation配置)
查看>>
《CLR via C#》读书笔记 之 方法
查看>>
设计模式:组合模式(Composite Pattern)
查看>>
ContentValues 和HashTable区别
查看>>
LogicalDOC 6.6.2 发布,文档管理系统
查看>>
给PowerShell脚本传递参数
查看>>
实战2——Hadoop的日志分析
查看>>
利用FIFO进行文件拷贝一例
查看>>
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG
查看>>
resmgr:cpu quantum等待事件
查看>>
一个屌丝程序猿的人生(六十六)
查看>>
Java 编码 UTF-8
查看>>
SpringMVC实战(注解)
查看>>