有没有一种方法可以获取当前呈现的JSP,使用JSTL或Struts(或不使用)?就像Python和PHP中的_ _ file _ _一样?
r6l8ljro1#
嗯...是的...在某种程度上
String __jspName = this.getClass().getSimpleName().replaceAll("_", ".");
字符串我使用了一个名为pre.jsp的JSP,我在我的webapp中的每个JSP的顶部都包含了它:
pre.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类名中是不允许的。如果你使用它们,你的类名可能看起来很奇怪。如果是这样的话,我建议创建一个静态帮助函数,它将类名转换为文件名,并调用它,即。
"/pre.jsp"
String __jspName = MyJspUtils.getFileName(this.getClass());
型每个JSP编译器都有自己的规则;下面是一个例子:http://itdoc.hitachi.co.jp/manuals/3020/30203Y0510e/EY050044.HTM感谢Marcus Junius Brutus指出了这一点。
esyap4oy2#
我使用JSTL成功如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ... <!-- <c:out value="${pageScope['javax.servlet.jsp.jspPage']}"></c:out> --> ...
字符串现在,您应该看到一个HTML注解,它是容器生成的servlet的名称,用于呈现JSP文件,该名称与JSP源文件非常接近。
scyqe7ek3#
更方便的方法是使用:用途:<%= request.getRequestURI()%><%= request.getRequestURI()%>例如,在我所有的jsp文件中,我总是这样做:呈现JSP文件:“<%= request.getRequestURI()%>”这将一个comented html行放到呈现的html中。这样人们就不能在浏览器中看到它,但是为了调试的目的,我总是可以看到它,如果我“查看源代码”。
vuktfyat4#
这是一个简单的复制粘贴解决方案:
<%=this.getClass().getSimpleName().replaceFirst("_jsp","")%>
字符串
4条答案
按热度按时间r6l8ljro1#
嗯...是的...在某种程度上
字符串
我使用了一个名为
pre.jsp
的JSP,我在我的webapp中的每个JSP的顶部都包含了它:型
另外,我在每个JSP的结尾都写了这个:
型
这给了我一个一致的日志。为了确保每个JSP都是“正确的”,我在构建脚本中进行了检查,它只查找两个字符串
"/pre.jsp"
和``END <%=__jspName`。注意事项:有很多字符在文件名中是允许的,但在Java类名中是不允许的。如果你使用它们,你的类名可能看起来很奇怪。如果是这样的话,我建议创建一个静态帮助函数,它将类名转换为文件名,并调用它,即。
型
每个JSP编译器都有自己的规则;下面是一个例子:http://itdoc.hitachi.co.jp/manuals/3020/30203Y0510e/EY050044.HTM
感谢Marcus Junius Brutus指出了这一点。
esyap4oy2#
我使用JSTL成功如下:
字符串
现在,您应该看到一个HTML注解,它是容器生成的servlet的名称,用于呈现JSP文件,该名称与JSP源文件非常接近。
scyqe7ek3#
更方便的方法是使用:用途:<%= request.getRequestURI()%>
<%= request.getRequestURI()%>例如,在我所有的jsp文件中,我总是这样做:
呈现JSP文件:“<%= request.getRequestURI()%>”
这将一个comented html行放到呈现的html中。这样人们就不能在浏览器中看到它,但是为了调试的目的,我总是可以看到它,如果我“查看源代码”。
vuktfyat4#
这是一个简单的复制粘贴解决方案:
字符串