在JSP中获取当前文件名

有没有一种方法可以使用JSTL或Struts(或不使用)获得当前呈现的JSP?像Python和PHP中的_文件_一样?

回答:

好吧…是的…某种程度上

String __jspName = this.getClass().getSimpleName().replaceAll("_", ".");

我正在使用一个名为JSP的名称pre.jsp,该名称包含在我的Web应用程序中每个JSP的顶部:

<%@page import="org.apache.log4j.Logger"%>

<%

String __jspName = this.getClass().getSimpleName().replaceAll("_", ".");

Logger log = Logger.getLogger(this.getClass().getName());

log.info("BEGIN JSP "+__jspName);

%>

<!-- BEGIN <%=__jspName %> -->

另外,我将其放在每个JSP的末尾:

<!-- END <%=__jspName %> --><% log.info("END JSP "+__jspName); %>

那给了我一个日志。为了确保每个JSP都是“正确的”,我在构建脚本中进行了检查,该脚本仅查找两个字符串"/pre.jsp"和“ END <%= __

jspName`。

注意:文件名中允许有许多字符,但Java类名中不允许。如果使用它们,您的类名可能看起来很奇怪。如果是这种情况,我建议创建一个静态帮助器函数,该函数将类名转换为文件名并进行调用,即

String __jspName = MyJspUtils.getFileName(this.getClass());

每个JSP编译器都有自己的规则。这是一个示例:http

:

//itdoc.hitachi.co.jp/manuals/3020/30203Y0510e/EY050044.HTM

以上是 在JSP中获取当前文件名 的全部内容, 来源链接: utcz.com/qa/420479.html

回到顶部