我有一个常见的包含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'
表示变量从未定义过。
我找到了相反的例子:在外部页面中声明一个变量,然后包含一个使用该变量的子页面。是否有可能走另一条路?
答案 0 :(得分:0)
你非常接近。
只需更改此行:
<tiles:insert definition=".${layoutDef}.layout">
到此:
<tiles:insert definition=".${requestScope.layoutDef}.layout">