Files
struts2-scaffold/src/main/java/com/example/struts2/CalculatorAction.java

77 lines
2.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.example.struts2;
import com.opensymphony.xwork2.ActionSupport;
/**
* 计算器 Action - 表单处理示例
*
* 学习点:
* - Action 接收表单参数(通过 setter
* - 数据验证validate 方法)
* - 结果类型
*/
public class CalculatorAction extends ActionSupport {
private Double num1;
private Double num2;
private String operator;
private Double result;
// 默认执行方法
public String execute() {
return SUCCESS;
}
// 计算方法
public String calculate() {
if (num1 == null || num2 == null || operator == null) {
return INPUT;
}
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if (num2 == 0) {
addFieldError("num2", "除数不能为0");
return INPUT;
}
result = num1 / num2;
break;
default:
return INPUT;
}
return SUCCESS;
}
// 验证方法
@Override
public void validate() {
if (num1 == null) {
addFieldError("num1", "请输入第一个数字");
}
if (num2 == null) {
addFieldError("num2", "请输入第二个数字");
}
}
// Getter and SetterStruts2 通过这些接收参数)
public Double getNum1() { return num1; }
public void setNum1(Double num1) { this.num1 = num1; }
public Double getNum2() { return num2; }
public void setNum2(Double num2) { this.num2 = num2; }
public String getOperator() { return operator; }
public void setOperator(String operator) { this.operator = operator; }
public Double getResult() { return result; }
public void setResult(Double result) { this.result = result; }
}