利用struts2,设计web程序。 已知三角形的三边长,计算并输出面积。 注意,若三边构成三角形,就输出面积,若三边不能构成三角形,返回输入界面重新输入,最好采用回显的方式实现输入界面。
时间: 2024-09-19 22:07:37 浏览: 75
利用Struts2设计Web程序时,首先需要创建一个JavaBean来处理三角形面积的计算逻辑。这个JavaBean可以包含三个属性代表三角形的三条边长,并提供一个方法`calculateArea(double a, double b, double c)`来计算面积。如果三条边能够构成一个三角形,根据海伦公式(半周长乘以面积除以2)进行计算;如果不满足条件,可以在计算方法内部检查是否满足任意两边之和大于第三边的条件。
在Struts2的Action类中,通过ActionForm实现数据绑定,将用户输入的边长存储到JavaBean中。当用户提交表单时,触发Action的execute方法,调用JavaBean的计算方法。如果计算失败,可以在Action中捕获异常,然后跳转回输入页面,并通过ActionForm的回显功能将原始输入显示出来,提示用户重新输入。
以下是简单的步骤和代码片段:
1. 创建ActionForm(如TriangleForm.java):
```java
public class TriangleForm {
private double sideA;
private double sideB;
private double sideC;
// getters and setters...
}
```
2. 创建Action类(如TriangleAction.java),继承自ActionSupport:
```java
public class TriangleAction extends ActionSupport {
private TriangleForm form;
public String calculateArea() throws Exception {
if (isValid()) {
Triangle triangle = new Triangle(form.getSideA(), form.getSideB(), form.getSideC());
if (triangle.isTriangle()) {
form.setArea(triangle.calculateArea());
return "success";
} else {
throw new Exception("Invalid input! The sides cannot form a triangle.");
}
}
return INPUT;
}
// Form validation methods and other logic...
}
```
3. 在struts.xml配置文件中定义Action,包括前端控制器(DispatcherServlet)和Action映射:
```xml
<action name="triangleCalculator" class="com.example.TriangleAction">
<result name="success">/results.jsp</result>
<result name="input">/input.jsp</result>
</action>
```
4. 用户输入界面(input.jsp):
```jsp
<form action="triangleCalculator" method="post">
Side A: <input type="number" name="sideA"><br>
Side B: <input type="number" name="sideB"><br>
Side C: <input type="number" name="sideC"><br>
<input type="submit" value="Calculate">
</form>
```
5. 成功结果页面(results.jsp)会接收到面积信息:
```jsp
<h1>Area: ${form.area}</h1>
```
6. 跳转逻辑可以在TriangleAction的catch块内实现,返回名为"input"的结果,同时设置ActionForm的回显。
阅读全文