编写一个简易计算器,客户端提交两个数字和一个运算符(+、-、*或/),将计算的结果以json串的形式返回给客户端,如果输入有误需给出错误提示。 请用springboot完成上述任务。提交控制器方法的文档和部分截图。
时间: 2024-11-10 09:26:51 浏览: 35
SimpleCalculatorApp:简单的计算器应用程序,允许用户输入两个数字,然后使用一个运算符(+ _ *或)进行计算并将结果返回给用户
在Spring Boot中创建一个简单的计算器功能,你可以按照以下步骤进行:
1. **创建项目**:
首先,你需要有一个基于Spring Boot的新项目。可以在Spring Initializr网站(https://start.spring.io/)生成一个包含Web和JSON支持的基本MVC项目。
2. **创建模型类** (CalculatorService.java) :
```java
public class CalculatorService {
public double calculate(String num1, String num2, String operator) {
try {
double result;
switch (operator) {
case "+":
result = Double.parseDouble(num1) + Double.parseDouble(num2);
break;
case "-":
result = Double.parseDouble(num1) - Double.parseDouble(num2);
break;
case "*":
result = Double.parseDouble(num1) * Double.parseDouble(num2);
break;
case "/":
if (Double.parseDouble(num2) != 0)
result = Double.parseDouble(num1) / Double.parseDouble(num2);
else
throw new IllegalArgumentException("除数不能为零");
break;
default:
throw new IllegalArgumentException("无效的运算符");
}
return result;
} catch (NumberFormatException e) {
throw new IllegalArgumentException("输入的不是有效的数字");
}
}
}
```
3. **创建Controller** (CalculatorController.java) 使用`@RestController`注解和`@PostMapping`处理HTTP请求:
```java
@RestController
public class CalculatorController {
private final CalculatorService calculatorService;
public CalculatorController(CalculatorService calculatorService) {
this.calculatorService = calculatorService;
}
@PostMapping("/calculate")
public ResponseEntity<String> calculate(@RequestParam(value = "num1", required = true) String num1,
@RequestParam(value = "num2", required = true) String num2,
@RequestParam(value = "operator", required = true) String operator) {
try {
double result = calculatorService.calculate(num1, num2, operator);
return ResponseEntity.ok(new JSONObject().put("result", result));
} catch (IllegalArgumentException ex) {
return ResponseEntity.badRequest().body(ex.getMessage());
}
}
}
```
4. **配置Spring MVC** 在application.properties文件中添加:
```
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
```
5. **测试**:
创建一个简单的HTML表单,在JSP页面中提交请求到`/calculate`端点,展示结果或错误信息。
6. **文档**:
控制器方法的文档可以使用`@ApiOperation`、`@ApiParam`等注解,例如:
```java
/**
* 计算两个数字的指定操作
* @param num1 第一个数字
* @param num2 第二个数字
* @param operator 运算符 (+, -, *, /)
* @return 结果 JSON 对象,包含"result"键和计算值
*/
@GetMapping("/calculate")
@ApiOperation("Calculate numbers with given operator")
public ResponseEntity<String> calculate(@RequestParam String num1, @RequestParam String num2, @RequestParam String operator) {
...
}
```
7. **部分截图**:
可能包括项目的结构图(如main目录下的启动类、配置文件和控制器包)、HTML表单示例、以及POST请求响应的JSON结果或错误页面截图。
注意:这只是一个基础的教程,实际项目中可能需要考虑更多的边缘情况,如异常处理、验证和分页等。同时,Spring Boot本身已经内置了JSON支持,不需要额外引入第三方库。
阅读全文