今天分享一个使用springboot 写一个 前后端不分离的项目,网页计算器,来熟悉springboot框架的使用。
java版本:8。
springboot:2.6.13
使用的技术是:
Java + Spring Boot + Thymeleaf + HTML/CSS/JS 构建的 Web 端简约按钮式计算器。
熟悉 Spring Boot 控制器(@Controller, @GetMapping, @PostMapping)
· 掌握表单提交与参数绑定(@RequestParam)
· 学会使用 Thymeleaf 在前端绑定变量
· 理解 HTML 与 JS 如何联动后端数据
先给大家看一下做出来的效果:
项目部分代码:
package com.jsonl.jisuanqi.controller;/**** User: Json* Date: 2025/6/21**/import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;/*** User:Json* Date: 2025/6/21**/
@Controller
public class IndexController {// 创建 JavaScript 脚本引擎,用于后端计算表达式private final ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");// 显示主页面,初始化表达式为空@GetMapping("/")public String home(Model model) {model.addAttribute("expression", ""); // 页面首次加载无表达式return "calculator"; // 返回 calculator.html}// 处理计算按钮提交的表达式@PostMapping("/calculate")public String calculate(@RequestParam String expression, Model model) {try {// 若表达式为空或无效,设置错误信息if (expression == null || expression.trim().isEmpty()) {model.addAttribute("result", "错误");expression = "";} else {// 使用 JavaScript 引擎计算表达式结果Object result = engine.eval(expression);model.addAttribute("result", result.toString()); // 设置结果expression = result.toString(); // 把结果变成新表达式,支持连续计算}} catch (Exception e) {// 计算出错时显示“错误”model.addAttribute("result", "错误");expression = "";}// 将最新表达式返回页面继续显示model.addAttribute("expression", expression);return "calculator";}// 清除表达式(点击 C 时)@GetMapping("/reset")public String reset(Model model) {model.addAttribute("expression", "");model.addAttribute("result", "");return "calculator";}
}
有兴趣的小伙伴,可以拿去看看,希望能在你编程学习的过程中帮助到你。
完整代码和简单的操作说明已经打包好了。可以获取:
https://wwwoop.com/home/Index/projectInfo?goodsId=92&typeParam=2&subKey=1