
在springboot的开发框架中,本来就推荐使用thymeleaf的前端框架,所以结合起来进行请后端的开发也是很方面的。下面就是我学习两者的一个实际用例笔记的额一个记录,方便回看关键的知识点
修改后自动跳转到用户列表页面
SpringBoot本来不应该关注这块,但是既然都学了,就看看吧
SpringBoot属于前后端分离的微服务框架,默认的模板引擎是thymeleaf,虽然也能支持JSP,但是比较麻烦,另外freemarker也是SpringBoot常用的模板引擎之一,只是听说效率还是不如thymeleaf。
thymeleaf可以很好的和SpringBoot集成,而且本身也包含了spring-boot-starter-web,不需要写版本,pomxml文件里会自动添加parent结点。
引入依赖
另外,它本身也自动配置了常用的默认配置
后台接口
前端页面
一个基本的示例就结束了,当然,还有更复杂的用法,不过既然都做前后端分离了,我觉得前端的东西还是让专业的前端去做吧,如果实在有这方面需求的,也可以自行百度
helloftl
有几个需要说明的:
### 1、定义方言Dialect
继承AbstractProcessorDialect
```
public class PagingDialect extends AbstractProcessorDialect {
private static final String DIALECT_NAME = "PagingDialect";//定义方言名称
public PagingDialect() {
super(DIALECT_NAME, "paging", StandardDialectPROCESSOR_PRECEDENCE);
//优先级:值必须为:StandardDialectPROCESSOR_PRECEDENCE
}
@Override
public Set getProcessors(String dialectPrefix) {
Set processors = new HashSet();
//添加我们定义的标签
processorsadd(new PagingTagProcessor(dialectPrefix));
processorsadd(new StandardXmlNsTagProcessor(TemplateModeHTML, dialectPrefix));
return processors;
}
}
```
### 2、添加自定义处理程序Processor
继承AbstractElementTagProcessor
```
public class PagingTagProcessor extends AbstractElementTagProcessor {
private static final String TAG_NAME = "pager";//标签名
private static final int PRECEDENCE = 10000;//优先级,必须是10000,否则读取不到标签的赋值
public PagingTagProcessor(String dialectPrefix) {
super(
TemplateModeHTML, // 此处理器将仅应用于HTML模式
dialectPrefix, // 要应用于名称的匹配前缀
TAG_NAME, // 标签名称:匹配此名称的特定标签
true, // 没有要应用于标签名称的前缀
null, // 无属性名称:将通过标签名称匹配
false, // 没有要应用于属性名称的前缀
PRECEDENCE // 优先(内部方言自己的优先)
);
}
@Override
protected void doProcess(ITemplateContext context,
IProcessableElementTag tag,
IElementTagStructureHandler structureHandler) {
String url = ((WebEngineContext) context)getRequest()getRequestURL()toString();
String queryString = ((WebEngineContext) context)getRequest()getQueryString();
String pageUrl = "";
if (StringUtilsisEmpty(queryString)) {
pageUrl = url + "page=";
} else {
pageUrl = url + "" + queryString + "&page=";
}
ApplicationContext appCtx = SpringContextUtilsgetApplicationContext(context);
//读取标签内容(当前页),注意标签必须是自带标签才能正常读取值
String pageIndexString = taggetAttributeValue("value");
//读取标签内容(页码大小)
String pageSizeString = taggetAttributeValue("size");
//读取标签内容(数据大小)
String totalSizeString = taggetAttributeValue("rows");
}
}
```
### 3、使用@Bean注解完成方言注入
在SpringBoot Application类中加入注入
```
@Bean
public PagingDialect paging() {
return new PagingDialect();
}
```
### 4、页面应用
```
```
Request参数
假设请求的url为:/user/getid=12
1、访问参数id可以使用param前缀,例如:${paramid!=null}检查是否有参数id;
2、参数是一个数组,因为它可以多值比如id=a&name=test,所以可以采用下标的方式访问,例如:
<p th:text="${paramq[0]}" th:unless="${paramq == null}">11</p>
3、还有一种访问方式是使用#>
以上就是关于springboot集成Thymeleaf实现一个用户的增删改查功能,包括前后端代码实现全部的内容,包括:springboot集成Thymeleaf实现一个用户的增删改查功能,包括前后端代码实现、SpringBoot笔记(五)模板引擎thymeleaf和freemarker、SpringBoot2中使用thymeleaf3自定义分页方言等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)