我想构建一个类似于:
的函数void MyIncludeCompile(String TheFile) {
"%><%@include file="+TheFile+"%><%";
}
我想获得include指令的替代方法来构建我自己的方法或函数。
类似的东西:
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, TheFile, out, false);
但是,它适用于某些事情:
void MyIncludeRun(String TheFile) {
%><jsp:include page="+TheFile+"/><%";
}
换句话说,在翻译时间而不是运行时间。 如你看到的: 运行时中的包含操作具有使用纯Java代码的等效项。
是否有替代 include指令?
答案 0 :(得分:0)
我的回答是否定的。您可以实现自己的include标记,例如<my:include file="theFile"/>
并将您自己的逻辑放入标记处理程序类中,但它不能在转换时执行。在翻译时,JSP被转换为常规java文件 - 更精确地转换为Servlet
的子类。只有指令(和声明)才能对servlet类进行任何更改(scriptlet和表达式将代码放入服务方法,标记在运行时处理)。我不知道JspRuntimeLibrary
的实现细节,但由于include方法的签名包含请求和响应对象,我认为它在运行时也包含资源。