做个简单计算器来熟悉一下jsp+javabean的应用
首先index.jsp代码
<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>
<html>
<head>
<basehref="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<bodystyle="text-align:center;">
<jsp:useBeanid="fish"class="com.fish.CalculatorBean"/>
<jsp:setPropertyproperty="*"name="fish"/>//这句话非常重要,*表示将这个表单的数据填给对应的javabean数据
<%
try {
fish.cauclutro();
} catch (Exception e) {
out.write(e.getMessage());
}
%>
<a>-----------------------------------------------------------------------------------------------------------------</a>
<br>
<a>计算结果:</a>
<jsp:getPropertyproperty="number1"name="fish"/>
<jsp:getPropertyproperty="code"name="fish"/>
<jsp:getPropertyproperty="number2"name="fish"/>
=
<jsp:getPropertyproperty="result"name="fish"/>
<br>
<a>-----------------------------------------------------------------------------------------------------------------</a>
<br>
<formaction="/calculator/index.jsp"method="post">
<tablewidth="50%"border="1"style="background:gray;">
<tr>
<tdcolspan="2"style="text-align:center;">简单计算器</td>
</tr>
<tr>
<td>第一个参数</td>
<td><inputtype="text"name="number1">
</td>
</tr>
<tr>
<td>操作符</td>
<td><selectname="code">
<optionvalue="+">+</option>
<optionvalue="-">-</option>
<optionvalue="*">*</option>
<optionvalue="/">/</option>
</select></td>
</tr>
<tr>
<td>第二个参数</td>
<td><inputtype="text"name="number2"></td>
</tr>
<tr>
<tdcolspan="2"style="text-align:center;"><input
type="submit"value="提交"/>
</td>
</tr>
</table>
</form>
</body>
</html>
在标准的java代码里面一般是不允许写java代码的,这是规范要求。
接著是:javabean的java代碼
packagecom.fish;
importjava.math.BigDecimal;
public class CalculatorBean {
String number1 = "0";
char code = '+';
String number2 = "0";
String result = "0";//之所以初始化,是为了防止第一次jsp:userbaen能得到数据
public String getNumber1() {
returnnumber1;
}
public void setNumber1(String number1) {
this.number1 = number1;
}
public char getCode() {
returncode;
}
public void setCode(char code) {
this.code = code;
}
public String getNumber2() {
returnnumber2;
}
public void setNumber2(String number2) {
this.number2 = number2;
}
public String getResult() {
returnresult;
}
public void setResult(String result) {
this.result = result;
}
public void cauclutro() {
BigDecimal d1 = new BigDecimal(this.number1);//用来封装计算的方法
BigDecimal d2 = new BigDecimal(this.number2);
switch (this.code) {
case '+':
result = d1.add(d2).toString();//加法
break;
case '-':
result = d1.subtract(d2).toString();//减法
break;
case '*':
result = d1.multiply(d2).toString();//乘法
break;
case '/':
if (d2.doubleValue() == 0) {
throw new RuntimeException("被除数不能为零!");
}
result = d1.divide(d2, 20, BigDecimal.ROUND_UP).toString();//除法
break;
default:
break;
}
}
}
我这个其实我是想说在java大数字的加减乘除是有一个类的叫BigDecimal。
点击计算,显示的结果