有没有办法获取当前使用 JSTL 或 Struts(或不使用)呈现的 JSP?像 _ _ 文件 _ Python 和 PHP?
最佳答案
嗯……是的……在某种程度上
String __jspName = this.getClass().getSimpleName().replaceAll("_", ".");
我正在使用一个名为 pre.jsp 的 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
荣誉转至 Marcus Junius Brutus指出这一点。
关于java - 在 JSP 中获取当前文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/863248/
相关文章:
java - 如何从 Struts1 中的 url 中删除 '.do' 前缀?
java - 如何在 Play 2.1.0 中测试 XML 结果
java - 将 URL 映射到我的 Java Servlet 时遇到问题
上传多个文件时,Java Spring MultipartFile Controller 只看到第一个文件
java - 右键单击 .jsp 文件时,在 Eclipse 中未出现在服务器上运行选项
java - Struts 错误 : The Struts dispatcher cannot be found
java - double类型的方法parsedouble字符串不适用于double参数
©2023 IT工具网