java - 在 JSP 日期格式化程序中处理不可解析的字符串

标签 java html jsp jstl

我正在编写一个 JSP,它有时需要格式化来自请求的 Java 日期。我是这样做的:

<fmt:formatDate value="${attribute.value}" pattern="yyyy-MM-dd HH:mm:ss"/>

它在 Java Dates 上工作得很好。

但是,有时具有完全相同名称 (attribute.value) 的请求属性字段实际上并不是日期,因此不应如此格式化。我想做的只是按原样通过 fmt:format 标记传递该字符串,而不是在无法解析的日期抛出异常。

我可以使用 c:choose 完成类似的事情,但我宁愿尽可能将 JSP View 与底层数据分开,所以这对我来说不是理想的选择。那么,有没有办法制作类似

的东西
<fmt:formatDate value="I AM NOT A DATE" pattern="yyyy-MM-dd HH:mm:ss"/>

简单地评估为

I AM NOT A DATE

在生成的 HTML 中?

最佳答案

这很简单:

<c:catch var="ex">
    <fmt:formatDate value="${attribute.value}" pattern="yyyy-MM-dd HH:mm:ss"/>
</c:catch>
<c:if test="${not empty ex}">
    ${attribute.value}
</c:if>

虽然没有我希望的那么优雅,但它确实有效。

关于java - 在 JSP 日期格式化程序中处理不可解析的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348511/

相关文章:

java - 使用 Lucene 7.4.0 打印索引术语

java - 自定义 ScrollView 上的淡入淡出

html - 为什么人们缩小 Assets 而不是 HTML?

html - 使组件添加新组件的问题

jquery - 如何在屏幕上显示页脚时隐藏固定 DIV?

java - response.sendredirect 中的空指针异常

java - 如何在JSP页面: java. sql.SQLException中连接到MySQL:用户 'root' @'localhost'的访问被拒绝

java - 四舍五入至小数点后 2 位

java - 在 java 字符串池中将创建多少个 String 对象?

java - 使用从 Servlet 到 JSP 的数据填充选择菜单