两个不同的jsp页面中的变量引用

时间:2011-09-15 12:43:49

标签: java jsp

如果我在我的A.jsp中声明一个变量,并且我试图将A.jsp包含到B.jsp.So我的问题就在这里,是否在A.jsp中声明的变量在B.jsp中是否可用? 请解释我对动态包含和静态包含的情况。

2 个答案:

答案 0 :(得分:5)

使用<%@ page include =“”>包含jsp模板时实际上将源插入并编译到包含文件中。这使您能够使用父文件中声明的变量。

当执行“动态”包含时,它将使用RequestDispatcher.include,它将调用调用页面作为新的Servlet。这使您无法使用声明的变量。

我建议你使用request.setAttribute(“name”,obj)在请求范围上传递变量;这样做的时候

答案 1 :(得分:0)

您无法使用<%@ include %>指令传递服务器端参数。该指令执行静态包含。包含文件的内容静态插入到包含页面中。也就是说,在从jsp到servlet的转换时间内。

使用<jsp:include>标记代替,它在运行时处理,使用<jsp:param>可以传递参数。

例如,如果你有a.jsp

<jsp:include page="b.jsp" />
    <jsp:param name="param1" value="value1" />
    <jsp:param name="param2" value="value2" />
</jsp:include>

您可以在b.jsp

中将这些参数作为请求参数获取
<% String v = request.getParameter("param1"); %>

考虑到你仍然可以在b.jsp中的a.jsp上获得请求参数。