Springboot-thymeleaf-ajax进行前后端交互

前言

前台的视图模版我使用的是thymeleaf,它是SpringBoot官方推荐的一个html5模版引擎,SpringBoot官方不推荐使用jsp,SpringBoot官网也是使用这个模版引擎做的。在使用thymeleaf前,确保Pom中存在thymeleaf依赖,即:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

后端向前端传递数据

Axis实体类:

public class Axis {
    private String Id;
    private String start;
    private String end;
    private String text;

    public String getId() {
        return Id;
    }

    public void setId(String id) {
        Id = id;
    }

    public String getStart() {
        return start;
    }

    public void setStart(String start) {
        this.start = start;
    }

    public String getEnd() {
        return end;
    }

    public void setEnd(String end) {
        this.end = end;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}

helloController类:

@Controller
public class helloController {
    @RequestMapping("/index")
    public String sayHello(ModelMap modelMap)
    {
        String message = "I am so vegetable!";
        modelMap.put("msg",message);//传递字符串类型变量
        Axis axis = new Axis();
        axis.setId("1");
        axis.setStart("2854");
        axis.setEnd("3736");
        axis.setText("快乐debug");
        modelMap.put("axis",axis);//传递一个类
        return "index";
    }
}

index.html:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
Hello World!
<!--获取单个值-->
<div th:text="${msg}"></div>
<!--获取一个对象的值-->
切片Id:<div th:text="${axis.Id}"></div>
开始时间:<div th:text="${axis.start}"></div>
结束时间:<div th:text="${axis.end}"></div>
文本:<div th:text="${axis.text}"></div>
</body>
</html>

重启DemoApplication, 打开网址http://localhost:8080/index
在这里插入图片描述

thymeleaf的其他用法可以参考此文章,8.5以后的部分

前端向后端传递数据

在这里,我使用ajax实现数据的异步传输。我们将主要步骤概括为:

1.在前端页面中引入jQuery
2.创建两个输入框,一个按钮用于输入数据和事件提交。
3.在js中编写事件,使用ajax进行数据提交
4.在后端对应的control层中编写对应的事件处理函数
login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
    <!--引入jQuery包用于使用ajax-->
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
</head>
<body>

<h1>请输入你的姓名和密码</h1>
<!--创建两个input输入框,定义id分别为name,age-->
<input type="text" id="name" name="name" placeholder="姓名">
<br>
<input type="text" id="password" name="password" placeholder="密码">
<br>
<!--创建button按钮,点击则激发submit()事件-->
<button onclick="submit();">提交</button>

</body>
<script>
    /*在这里编写submit()事件*/
    function submit() {
        $.ajax({
            url: "/loginIn", /*数据提交到/loginIn处*/
            type: "POST",  /*采用POST方法提交*/
            data: { "name": $("#name").val(),"password":$("#password").val()},  /*提交的数据(json格式),从输入框中获取*/
            dataType:'JSON',
            cache:false,
            success:function (result)
            {
                if(result.code==0)
                {
                    alert(result.msg);
                }
                else
                {
                    alert(result.msg);
                }
            }

        });
    }
</script>

</html>

loginIn函数:

	@RequestMapping("/loginIn")
    @ResponseBody
    public BaseResult login(String name, String password)
    {
        BaseResult result = new BaseResult();
        if(name.length()!=0&&password.length()!=0)
        {
            result.setCode(0);
            result.setMsg("你的名字是"+name+",你的密码是"+password);
        }
        else
        {
            result.setCode(1);
            result.setMsg("error!");
        }
        return result;
    }

在js中使用thymeleaf

以上段代码为例:

<script th:inline="javascript">
    /*在这里编写submit()事件*/
    function submit() {
        $.ajax({
            url: "/loginIn", /*数据提交到/loginIn处*/
            type: "POST",  /*采用POST方法提交*/
            data: { "name": [[${msg}]],"password":$("#password").val()},  /*提交的数据(json格式),从输入框中获取*/
            dataType:'JSON',
            cache:false,
            success:function (result)
            {
                if(result.code==0)
                {
                    alert(result.msg);
                }
                else
                {
                    alert(result.msg);
                }
            }

        });
    }
</script>

即在标签中添加th:inline=“javascript”,数据绑定用[[${xxx}]]

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个名为“知识管理系统”的JAVA毕业设计项目,基于Spring Boot框架和MySQL数据库。该项目旨在帮助用户管理和分享知识,提高学习效率。以下是关于该项目的500字资源介绍:项目结构:本项目采用经典的MVC(Model-View-Controller)架构,分为前端、后端和数据库三个部分。前端使用HTML、CSS和JavaScript进行页面设计和交互实现;后端使用Spring Boot框架进行业务逻辑处理;数据库使用MySQL存储数据。功能模块:本项目主要包括以下几个功能模块:用户管理:包括用户注册、登录、修改密码等功能。分类管理:用户可以创建、编辑、删除分类,以便对知识进行归类。文章管理:用户可以发布、编辑、删除文章,同时支持文章的点赞、评论等功能。搜索功能:用户可以通过关键词搜索相关的文章和分类。数据统计:对用户、分类、文章等数据进行统计分析,以便了解系统的运行情况。技术特点:本项目采用了以下技术特点:使用Spring Boot框架,简化了项目的配置和部署过程,提高了开发效率。使用MyBatis作为持久层框架,实现了与MySQL数据库的高效交互。使用Thymeleaf模板引擎,实现了前后端分离,提高了页面渲染性能。使用Bootstrap框架进行前端页面设计,使页面具有良好的响应式效果。使用Ajax技术实现异步数据交互,提高了用户体验。应用场景:本项目适用于学校、企业、团队等场景,帮助用户管理和分享知识,提高工作效率。总之,这个项目是一个功能完善、技术先进的知识管理系统,可以帮助你快速搭建一个知识分享平台。通过学习和实践这个项目,你可以掌握Spring Boot框架、MySQL数据库以及前后端分离等技术,为你的JAVA开发技能提升打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值