编写一个 Tag 文件:GetArea.tag 负责求出三角形的面积,并使用 variable 指令返回三角形的面积给调用该 Tag 文件的JSP页面。JSP页面负责显示 Tag 文件返回的三角形的面积。JSP在调用Tag 文件时,使用attribute 指令将三角形三边的长度传递给 Tag 文件one.jsp和two.jsp都使用Tag 标记调用GetArea.tag。one.jsp返回的三角形的面积保留最多3位小数,two.isp返回的三角形的面积保留最多6位小数。
时间: 2023-05-13 18:06:30 浏览: 208
以下是 GetArea.tag 文件的代码:
```html
<%@ tag language="java" pageEncoding="UTF-8" %>
<%@ attribute name="side1" required="true" %>
<%@ attribute name="side2" required="true" %>
<%@ attribute name="side3" required="true" %>
<%@ variable %>
<%
double a = Double.parseDouble((String)pageContext.getAttribute("side1"));
double b = Double.parseDouble((String)pageContext.getAttribute("side2"));
double c = Double.parseDouble((String)pageContext.getAttribute("side3"));
double p = (a + b + c) / 2;
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c));
pageContext.setAttribute("area", String.format("%.3f", area));
%>
```
在 JSP 页面中,可以使用以下代码调用 GetArea.tag 文件:
```html
<%@ taglib prefix="mytag" tagdir="/WEB-INF/tags" %>
<mytag:GetArea side1="3" side2="4" side3="5" />
```
其中,side1、side2 和 side3 分别表示三角形的三边长度。在 GetArea.tag 文件中,我们使用了 variable 指令将三角形的面积保存在 pageContext 中,可以在 JSP 页面中使用 EL 表达式 ${area} 获取三角形的面积。
对于 one.jsp,可以使用以下代码显示三角形的面积:
```html
<mytag:GetArea side1="3" side2="4" side3="5" />
三角形的面积为:${area}
```
对于 two.jsp,可以使用以下代码显示三角形的面积:
```html
<mytag:GetArea side1="3" side2="4" side3="5" />
三角形的面积为:${area}
```
注意,我们在 GetArea.tag 文件中使用了 String.format 方法格式化三角形的面积,保留了最多 3 位或 6 位小数。