当前位置: 首页 > 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.lryc.cn/news/574664.html

相关文章:

  • Drag-and-Drop LLMs: Zero-Shot Prompt-to-Weights
  • DataSophon 1.2.1集成Flink 1.20并增加JMX 监控
  • pyqt setContentsMargins
  • 网络安全攻防:2025年新型钓鱼攻击防御指南
  • 零基础搭建Spring AI本地开发环境指南
  • LT8311EX一款适用于笔记本电脑,扩展坞的usb2.0高速运转芯片,成对使用,延伸长度达120米
  • 202564读书笔记|《土耳其:换个地方躺平(轻游记)》——旅行的时候,绮丽多姿的真实世界向我打开
  • Python核心库Pandas详解:数据处理与分析利器
  • 【Java开发日记】我们详细地讲解一下 Java 异常及要如何处理
  • Springboot项目中使用手机号短信验证码注册登录实现
  • Vue项目使用defer优化页面白屏,性能优化提升,秒加载!!!
  • 【服务器】教程 — Linux上如何挂载服务器NAS
  • 帮助装修公司拓展客户资源的微信装修小程序怎么做?
  • STM32 环境监测与控制系统的设计与实现
  • Vue3+el-table-v2虚拟表格大数据量多选功能详细教程
  • STM32[笔记]--4.嵌入式硬件基础
  • 攻防世界-MISC-MeowMeowMeow
  • Unity小工具:资源引用的检索和替换
  • 深入研究:小红书笔记详情API接口详解
  • Linux环境下MariaDB如何实现负载均衡
  • 一文了解AI Agent的幕后基础设施
  • 记一次 Kafka 磁盘被写满的排查经历
  • 采用ArcGIS10.8.2 进行插值图绘制
  • macOS - 快速上手使用 YOLO
  • MySQL之SQL性能优化策略
  • 信创建设,如何统一管理异构服务器的认证、密码、权限管理等?
  • React性能优化精髓之一:频繁setState导致滚动卡顿的解决方案
  • 新增MCP接入和AutoAgent,汉得灵猿AI中台1.6版正式发布!
  • 【软考高级系统架构论文】论单元测试方法及应用
  • Linux离线安装mysql