利用include与param动作标记在JSP页面间传递参数。 建立TEST.JSP与CALCULATE.JSP,通过TEST.JSP传递参数radius(圆的半径),在CALCULATE.JSP中获取该参数,计算并输出圆的面积与周长。
时间: 2024-09-10 08:23:55 浏览: 43
JSP跨iframe如何传递参数实现代码
在JSP中,可以使用`<jsp:include>`动作标签来包含另一个页面,并且可以通过`param`动作传递参数。这种传递是通过请求对象(Request)进行的,允许在包含页面时向被包含页面传递参数。下面是如何在TEST.JSP中传递`radius`参数给CALCULATE.JSP的示例:
1. 在TEST.JSP页面中,你可以使用以下代码来包含CALCULATE.JSP页面,并传递`radius`参数:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Test Page</title>
</head>
<body>
<!-- 用户输入圆的半径 -->
<form action="TEST.JSP" method="get">
半径:<input type="text" name="radius" />
<input type="submit" value="计算" />
</form>
<!-- 利用jsp:include动作标记包含CALCULATE.JSP页面,并传递参数 -->
<jsp:include page="CALCULATE.JSP">
<jsp:param name="radius" value="<%= request.getParameter("radius") %>" />
</jsp:include>
</body>
</html>
```
请注意,为了避免递归包含,`<form>`标签的`action`属性应当指向当前页面(TEST.JSP),并且表单提交后页面会重新加载,此时通过`request.getParameter("radius")`获取传递的参数。
2. 在CALCULATE.JSP页面中,可以通过`request.getParameter("radius")`获取传递的参数,并进行计算:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.lang.Math" %>
<!DOCTYPE html>
<html>
<head>
<title>Calculate Page</title>
</head>
<body>
<%
// 获取传递的半径参数
String radiusStr = request.getParameter("radius");
if (radiusStr != null && !radiusStr.isEmpty()) {
double radius = Double.parseDouble(radiusStr);
double area = Math.PI * radius * radius;
double circumference = 2 * Math.PI * radius;
// 输出计算结果
out.println("<p>圆的面积:" + area + "</p>");
out.println("<p>圆的周长:" + circumference + "</p>");
}
%>
</body>
</html>
```
在这段代码中,首先检查参数`radius`是否存在且不为空,然后进行类型转换并计算圆的面积和周长,最后通过`out.println`输出结果。
阅读全文