当前位置 : 主页 > 编程语言 > java >

在JSP中包含/导入之前,如何检查文件是否存在?

来源:互联网 收集:自由互联 发布时间:2021-06-25
假设requestScope.importMe正在期待一个JSP文件的路径 c:choose c:when test="${!empty requestScope.importMe fileExists(requestScope.importMe) }" c:import url="${requestScope.importMe}" / .../c:choose 在尝试包含它之前,如何
假设requestScope.importMe正在期待一个JSP文件的路径

<c:choose>
    <c:when test="${!empty requestScope.importMe && fileExists(requestScope.importMe) }">
    <c:import url="${requestScope.importMe}" />   
    ...
</c:choose>

在尝试包含它之前,如何检查文件是否存在,以便不会抛出错误?

我更喜欢使用JSTL标签的解决方案。

把它放在一个 c:catch标签中。它会抓住任何抛出的 Exception给你。

<c:catch var="e">
    <c:import url="${url}" />
</c:catch>
<c:if test="${!empty e}">
    Error: ${e.message}
</c:if>

不过,我必须承认,我不喜欢c:catch方法。控制流程是滥用例外。如果可以的话,可以在servlet或者JavaBean中做这个工作,而不是在File#exists()(和ServletContext#getRealPath())的帮助下。

网友评论