是否可以创建一个集成include指令的函数? Java - JSP

时间:2013-09-21 18:31:27

标签: java jsp include directive

我想构建一个类似于:

的函数
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指令

1 个答案:

答案 0 :(得分:0)

我的回答是否定的。您可以实现自己的include标记,例如<my:include file="theFile"/>并将您自己的逻辑放入标记处理程序类中,但它不能在转换时执行。在翻译时,JSP被转换为常规java文件 - 更精确地转换为Servlet的子类。只有指令(和声明)才能对servlet类进行任何更改(scriptlet和表达式将代码放入服务方法,标记在运行时处理)。我不知道JspRuntimeLibrary的实现细节,但由于include方法的签名包含请求和响应对象,我认为它在运行时也包含资源。