获取JSP中当前文件名
有没有办法获取当前呈现的 JSP,使用 JSTL 还是 Struts(或不使用)? 就像 Python 和 PHP 中的 _ _ file _ _ 一样?
Is there a way to get which JSP is currently rendered, with JSTL or Struts (or without)? like _ _ file _ _ in Python and PHP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
嗯...是的...在某种程度上,
我使用一个名为
pre.jsp
的 JSP,将其包含在我的 web 应用程序中每个 JSP 的顶部:另外,我将其放在最后每个 JSP 的:
这给了我一个一致的日志。 为了确保每个 JSP 都是“正确的”,我在构建脚本中进行了检查,该脚本仅查找两个字符串
"/pre.jsp"
和 ``END <%=__jspName`。注意:文件名中允许使用许多字符,但 Java 类名中不允许使用许多字符。 如果你使用它们,你的类名可能看起来很奇怪。 如果是这种情况,我建议创建一个静态辅助函数,将类名转换为文件名并调用它,即
每个 JSP 编译器都有自己的规则; 这是一个示例: http://itdoc.hitachi.co.jp /manuals/3020/30203Y0510e/EY050044.HTM
感谢 Marcus Junius Brutus 的指点那个出来了。
Well ... yes ... in a way
I'm using a JSP called
pre.jsp
for that which I include at the top of each JSP in my webapp:Plus I put this at the end of each JSP:
That gives me a consistent log. To make sure each JSP is "correct", I have a check in my build script which just looks for the two strings
"/pre.jsp"
and ``END <%=__jspName`.Note: There are many characters which are allowed in file names but not in Java class names. If you use them, your class names might look weird. If that's the case, I suggest to create a static helper function which converts class names to File names and call that, i.e.
Each JSP compiler has it's own rules; here is one example: http://itdoc.hitachi.co.jp/manuals/3020/30203Y0510e/EY050044.HTM
Kudos go to Marcus Junius Brutus for pointing that out.
我成功地使用了 JSTL,如下所示:
现在,您应该看到容器生成的用于呈现 JSP 文件的 servlet 名称作为 HTML 注释,该名称与 JSP 源文件非常接近。
I succeeded using JSTL as following :
And now, you should see as an HTML comment the name of the servlet produced by the container to render your JSP file, which name is very close to the JSP source file.
更方便的方法是使用: <%= request.getRequestURI() %>
<%= request.getRequestURI() %>
例如,在我的所有 jsp 文件中,我总是放置以下行:
Rendering JSP File: '<%= request.getRequestURI() %>'
这会将带注释的 html 行放入渲染的 html 中。 这样,人们就无法在浏览器中看到它,但出于调试目的,如果我执行“查看源代码”,我总是可以看到它。
The more convenient way is to use: <%= request.getRequestURI() %>
<%= request.getRequestURI() %>
For example, in all of my jsp files, I always do put this line:
Rendering JSP File: '<%= request.getRequestURI() %>'
This puts a comented html line in to the rendered html. This way one cannot see it in the browser, but for debugging purposes, I can always see it inf I do "View source".
这是一个简单的复制粘贴解决方案:
This is a simple copy-paste solution: