1
qping 2014-09-30 07:57:25 +08:00 via iPhone
说说什么业务场景下需要这么写吧?
|
2
tremblingblue 2014-09-30 08:24:37 +08:00 via iPhone
我也碰到过个场景,就是想运行时动态include模版,但又不想使用动态标签,担心性能问题。
最后换了方式,没这样弄 |
3
andybest OP @tremblingblue 也就是静态include的确无法使用变量作为include文件名?
|
4
SoloCompany 2014-09-30 14:53:20 +08:00 1
1. 真心不建议这样写,用标签可以少很多坑,比如
<%@ taglib prefix=“i" tagdir="/WEB-INF/tags/includeFiles” %> <i:B cat=“<%= cat %>” dog=“<%= dog %>” /> 当然,标签名字就更不可能动态化了,但你最好先想清楚自己的业务逻辑为什么要这么别扭的代码 如果真需要动态 include,你也应该考虑把调用关系反向处理,把 cat / dog 这些变量的定义放到另一个被 include 文件里面,然后在 A.jsp / B.jsp 里面 include 2. 真的需要动态 include,你还是选择 <jsp:include /> 标签或者是 <c:import /> 吧 这些都不是编译时 include,参数传递必须要显式的,不愿意改太多代码的话,可以通过 request scope 来传递 |
5
tremblingblue 2014-09-30 16:03:10 +08:00
@andybest 嗯,因为静态include不是运行时的,反正我也没想到什么办法hack过去。。。
|