Мне нужно создать калькулятор суммирования с инструментами прошлой истории JSP и java bean. Мне нужно вычислить сложение, но я не могу сохранить значения в ArrayList в компоненте. Он всегда сбрасывается с новыми значениями.
Это bean-компонент java, который получает firstNum и secondNum из JSP и сохраняет результат в истории ArrayList.
SumBean. java
import java.util.ArrayList;
public class SumBean implements java.io.Serializable {
private double firstNumber;
private double secondNumber;
private ArrayList<Double> history = new ArrayList<>();
public void setFirstNumber(double firstNumber){
this.firstNumber = firstNumber;
}
public void setSecondNumber(double secondNumber){
this.secondNumber = secondNumber;
}
public double getFirstNumber(){
return firstNumber;
}
public double getSecondNumber(){
return secondNumber;
}
public double addition(){
double sum = firstNumber + secondNumber;
return sum;
}
public void setHistory(){
history.add(addition());
}
public ArrayList getHistory(){
return history;
}
}
Вот JSP, который отображает форму и передает значение компоненту java.
сложение. jsp
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean id="add" class="person.bean.SumBean">
<jsp:setProperty name="add" property="firstNumber" value="${param.firstNumber}"/>
<jsp:setProperty name="add" property="secondNumber" value="${param.secondNumber}"/>
</jsp:useBean>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Addition JSP Page</title>
</head>
<body>
<h1>Addition JSP</h1>
<form method="post" action="addition.jsp">
<input type="number" name="firstNumber" placeholder="First number">
<input type="number" name="secondNumber" placeholder="Second number">
<input type="submit" name="submit" value="Submit">
<input type="submit" name="reset" value="Reset">
</form>
<br>
Result : ${add.addition()}
<br>
History:
<br>
${add.setHistory()}
<c:forEach var="item" items="${add.getHistory()}">
${item}
</c:forEach>
<br>
<a href="index.html">Home</a>
</body>
</html>