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

77 lines
2.0 KiB
Java
Raw Normal View History

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; }
}