springboot集成Thymeleaf实现一个用户的增删改查功能,包括前后端代码实现

springboot集成Thymeleaf实现一个用户的增删改查功能,包括前后端代码实现,第1张

在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自定义分页方言等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9868529.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存