拓冰建站拓冰建站
首页 / 资讯中心 / 正文

5 分钟快速上手 htmx-spring-boot:让你的 Spring Boot 应用瞬间拥有 AJAX 能力

5 分钟快速上手 htmx-spring-boot让你的 Spring Boot 应用瞬间拥有 AJAX 能力【免费下载链接】htmx-spring-bootSpring Boot and Thymeleaf helpers for working with htmx项目地址: https://gitcode.com/gh_mirrors/ht/htmx-spring-boot还在为 Spring Boot 应用写一堆 JavaScript 和 JSON 接口来实现 AJAX 无刷新更新吗其实有一个更简单优雅的选择——htmx-spring-boot。这是一款为 Spring Boot 与 Thymeleaf 量身打造的 htmx 集成库它把 AJAX、局部刷新、页面跳转统统封装成注解和工具类让你几乎不写一行前端 JS就能让后端动态更新页面。本文用 5 分钟带你完成 htmx-spring-boot 快速上手从依赖引入到第一个局部刷新功能一步到位。htmx 是什么为什么 Spring Boot 开发者需要它 htmx 是一个轻量级前端库它允许你在 HTML 标签上直接声明 AJAX 行为。比如给一个按钮加上hx-get/users和hx-target#list点击后就会自动把/users返回的 HTML 片段替换到#list区域全程无需手写 fetch 或 axios。而htmx-spring-boot则把 htmx 与 Spring MVC 深度打通它提供视图View、注解Annotation和参数解析器Argument Resolver让控制器轻松处理 htmx 的请求头与响应头实现前后端无缝协作尤其擅长动态内容局部更新。认识 htmx-spring-boot两大核心模块 项目分为两个模块可按需引入htmx-spring-boot核心模块提供注解和辅助类如HxRequest、HtmxRequest、HtmxResponse等相关源码见 htmx-spring-boot 模块。htmx-spring-boot-thymeleafThymeleaf 方言模块支持在模板中直接书写hx:get等表达式属性并自动注入 CSRF token源码见 htmx-spring-boot-thymeleaf 模块。两者均已发布到 Maven 中央仓库Java 17、Spring Boot 3.x/4.x 均可使用。3 步完成 htmx-spring-boot 快速集成 ✅第 1 步添加核心依赖在pom.xml中加入dependency groupIdio.github.wimdeblauwe/groupId artifactIdhtmx-spring-boot/artifactId version最新版本号/version /dependency第 2 步添加 Thymeleaf 方言依赖如果使用 Thymeleaf 模板再加上dependency groupIdio.github.wimdeblauwe/groupId artifactIdhtmx-spring-boot-thymeleaf/artifactId version最新版本号/version /dependency第 3 步引入 htmx.js 并启动在你的 Thymeleaf 页面里引入 htmx 的脚本然后正常启动应用即可。项目的自动配置类 HtmxMvcAutoConfiguration.java 会自动注册拦截器、参数解析器和视图解析器无需任何手动配置。是不是超简单第一个 AJAX 请求HxRequest 注解用法 想让某个控制器方法只响应 htmx 发起的请求比如hx-get只需加上HxRequest注解。该注解定义见 HxRequest.javaHxRequest GetMapping(/users) public String users() { return view; }还可以通过HxRequest(my-element)限定只有指定 id/name 的元素触发时才执行或用HxRequest(target my-target)限定目标元素。多个注解还能自由组合比如自定义一个HxGetMapping组合注解。读取 htmx 请求头HtmxRequest 参数 在控制器方法里直接声明HtmxRequest参数就能优雅地访问所有 htmx 请求头相关实现见 HtmxRequest.javaHxRequest GetMapping(/users) public String users(HtmxRequest htmxRequest) { if (htmxRequest.isBoosted()) { // 是 hx-boost 请求 } return view; }它提供了isBoosted()、getTriggerId()、getTarget()、isHistoryRestoreRequest()等实用方法历史恢复、提示弹窗等场景都能轻松判断。返回响应头HtmxResponse 与 HxTrigger 设置 htmx 响应头有两种方式。第一种是把HtmxResponse作为控制器参数动态添加事件触发见 HtmxResponse.javaPostMapping(/user/{id}) public String user(PathVariable Long id, HtmxResponse htmxResponse) { htmxResponse.addTrigger(user-updated); // 更新完成后触发前端事件 return redirect:htmx:/user/list; }第二种是直接用注解比如HxTrigger(userUpdated)、HxPushUrl、HxReplaceUrl、HxRetarget、HxReswap等一行注解即可设置对应响应头代码更简洁。htmx 页面跳转的三种方式 传统的redirect:在 AJAX 场景下会把整页塞进目标区域体验很差。htmx-spring-boot 提供了三个专用视图解决这个问题HtmxRedirectView通过HX-Redirect头实现客户端跳转返回redirect:htmx:/path即可见 HtmxRedirectView.java。HtmxLocationRedirectView通过HX-Location头实现不刷新整页的跳转用redirect:htmx:location:/path。HtmxRefreshView通过HX-Refresh头刷新当前页返回refresh:htmx。Thymeleaf 方言hx:get 写法与 CSRF 自动注入 这是 Thymeleaf 用户最爱的特性HtmxDialect.java 为绝大多数hx-*属性提供了处理器让你在模板中用冒号写法启用 Thymeleaf 表达式div hx:get{/users/{id}(id${userId})} hx-target#otherElement加载用户详情/div渲染后自动变成/users/123。更贴心的是hx:vals支持直接写内联 Map且使用hx:post、hx:put等属性时HtmxCsrfAttributeProcessor.java 会自动把 CSRF token 注入到hx-headers中即使元素不在表单里也能防 CSRF 攻击。与 Spring Security 无缝协作 安全方面也考虑周全HxRefreshHeaderAuthenticationEntryPoint可在认证失败时让 htmx 强制整页刷新避免登录页被塞进局部区域。此外还提供了一系列基于HX-Location跳转的处理器如 HxLocationRedirectAuthenticationSuccessHandler.java、登录失败处理器、退出处理器、拒绝访问处理器等只需在SecurityFilterChain中配置即可源码全部位于 security 包。小结 短短几分钟你就掌握了 htmx-spring-boot 的核心用法HxRequest精确路由 htmx 请求、HtmxRequest/HtmxResponse读写请求响应头、专用视图实现优雅跳转、Thymeleaf 方言让模板更强大、Spring Security 集成开箱即用。如果你想亲自体验可以git clone仓库 https://gitcode.com/gh_mirrors/ht/htmx-spring-boot 查看完整源码与测试用例。告别繁琐的 JSON 接口和前端状态管理用 htmx-spring-boot 让 Spring Boot 应用轻松拥有 AJAX 能力吧【免费下载链接】htmx-spring-bootSpring Boot and Thymeleaf helpers for working with htmx项目地址: https://gitcode.com/gh_mirrors/ht/htmx-spring-boot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门