JSTL c:从内部设置var(包含页面)

时间:2014-07-25 19:17:22

标签: jsp jstl tiles

我有一个常见的包含JSP,其中设置了一个变量。该变量必须可供包含JSP的外部页面访问,但无法识别。

common.jsp中

<c:set var="layoutDef" value="component" scope="request" />

main.jsp中

<jsp:include page="common.jsp" />
<!-- Now do something with this included var. -->
<tiles:insert definition=".${layoutDef}.layout">

虽然我正在使用Tiles,但这不是Tiles问题。变量“layoutDef”没有扩展。

抛出的错误是

javax.servlet.jsp.JspException: Error -  Tag Insert : Can't get definition '..layout'

表示变量从未定义过。

我找到了相反的例子:在外部页面中声明一个变量,然后包含一个使用该变量的子页面。是否有可能走另一条路?

1 个答案:

答案 0 :(得分:0)

你非常接近。

只需更改此行:

<tiles:insert definition=".${layoutDef}.layout">

到此:

<tiles:insert definition=".${requestScope.layoutDef}.layout">