当前位置: 首页 > news >正文

java-SpringBoot框架开发计算器网页端编程练习项目【web版】

今天分享一个使用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

http://www.lqws.cn/news/508681.html

相关文章:

  • QT多线程
  • Git 子模块 (Submodule) 完全使用指南
  • 烟花爆竹生产企业库房存储安全风险预警系统
  • 【Pandas】pandas DataFrame update
  • 【Docker基础】Docker容器管理:docker stop详解
  • Vue.js:渐进式框架赋能现代Web开发
  • 蓝桥杯嵌入式学习(cubemxkeil5)
  • word中如何快速打出上标?
  • 20250624java面试总结
  • 第九节 CSS工程化-预处理技术对比
  • 大白话蓝牙中的RPC:Remote Procedure Call远程过程调用
  • 壁挂马桶品牌推荐:我的“瑞尔特瑞家HX5”沉浸式体验报告健康与洁净的硬核科技
  • 从设备自动化到智能管控:MES如何赋能牛奶饮料行业高效生产?
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 10(题目+回答)
  • Flask(四) 模板渲染render_template
  • 用Rust写平衡三进制加法器
  • 调试HDMI音频能8通道播放声音
  • 开疆智能CCLinkIE转ModbusTCP网关连接川崎机器人配置案例
  • linux grep的一些坑
  • GelSight Mini视触觉传感器开发资源升级:触觉3D点云+ROS2助力机器人科研与医疗等应用
  • Flutter动画开发:从基础到高级实战
  • Luckysheet Excel xlsx 导入导出互相转换
  • css color 十六进制颜色透明度
  • Harmony状态管理 @Local和@Param
  • 机器人编程语言要如何选择?
  • 十二(1)、Webshell工具哥斯拉
  • Spring Boot 切面编程(AOP)详细教程
  • mongoose解析http字段值
  • 梳理React中的fiber架构
  • React Hooks详解