我在jsp页面上被阻塞了,我们的1名java工程师现在无法提供帮助。
有一个名为“模块-review.jsp”的模板,它在两个实例中加载,通过普通的页面加载,通过api将其作为json对象的一部分返回。
有一个名为"review.updatedDate“的变量。在普通页面视图中,此变量作为散列映射加载到页面中,如下所示:
{_value=2009-07-02 11:54:30.0, class=sql-timestamp}因此,如果我想要日期值,我使用${review.updatedDate._value}
但是,当API加载模块-review.jsp时,日期值将作为date对象直接返回,其中${review.updatedDate}直接返回日期值。
我需要一组条件语句,这些语句仅在不存在${review.updatedDate}的情况下显示${ ._value }。我尝试过的每一件事都给我带来了._value不存在的错误,这是相当讽刺的。
我目前正在尝试使用这个方法,但在第二个条件下失败了:
<c:if test="${ (not empty review.updatedDate['_value']) }">
${review.updatedDate._value}
</c:if>
<c:if test="${ (empty review.updatedDate['_value']) }">
${review.updatedDate}
</c:if>发布于 2009-07-05 21:07:34
除了“不要那样做”之外,我想您还可以测试updatedDate的类型
<c:choose>
<c:when test="${review.updatedDate.class.name == 'java.util.Date'}">
Date: ${review.updatedDate}
</c:when>
<c:otherwise>
Map: ${review.updatedDate._value}
</c:otherwise>
</c:choose>...assuming表示日期是日期类的实例。奇怪的是,当我尝试测试java.util.HashMap时,这种方法没有起作用。
也许更可靠的方法是将测试交给Java类:
package typetest;
import java.util.Map;
public class TypeUtil {
public static boolean isMap(Object o) {
return o instanceof Map;
}
}这可以通过TLD文件(例如,WEB/maptest.tld)映射到自定义函数:
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>myfn</short-name>
<uri>http://typeutil</uri>
<function>
<name>isMap</name>
<function-class>typetest.TypeUtil</function-class>
<function-signature>boolean isMap(java.lang.Object)</function-signature>
</function>
</taglib>导入函数的示例JSP:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="myfn" uri="http://typeutil"%>
<html>
<body>
<c:choose>
<c:when test="${myfn:isMap(review.updatedDate)}">
Map: ${review.updatedDate._value}
</c:when>
<c:otherwise>
Date: ${review.updatedDate}
</c:otherwise>
</c:choose>
</body>
</html>https://stackoverflow.com/questions/1076315
复制相似问题