- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 jsp 页面上被阻止,我们的 1 位 java 工程师现在无法提供帮助。
有一个名为“module-review.jsp”的模板在 2 个实例中加载,通过普通页面加载和通过 api 返回它作为 json 对象的一部分。
有一个名为“review.updatedDate”的变量。在普通页面 View 中,此变量作为 HashMap 加载到页面中,如下所示:
{_value=2009-07-02 11:54:30.0, class=sql-timestamp}
所以如果我想要日期值,我使用 ${review.updatedDate._value}
但是,当 module-review.jsp 被 API 加载时,日期值直接作为日期对象返回,其中 ${review.updatedDate} 直接返回日期值。
我需要一组条件语句,仅在 ._value 不 存在时才显示 ${review.updatedDate}。我尝试过的所有操作都给我错误,即 ._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>
最佳答案
除了“不要那样做”之外,我猜你可以测试 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>
...假设日期是 Date 的实例类(class)。奇怪的是,当我尝试测试 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-INF/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>
关于conditional - JSTL:检查属性是否不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1076315/
我想要一个“常量”的 JSTL 文件并在其他文件中引用它们。 例如 常量.jsp: Audi 其他文件: I drive an ${car} which is ${colour} 上面的代码(
你能帮我把这个 JSTL 标签转换成 JSTL 三元吗 class="author" class="${page.class}" > 最佳答案 非常简单: 关于jSTL -
我需要根据请求中存在的值将单选按钮设置为选中状态。下面是我在 JSP 中使用的代码 checked"> Active checked">
我有这个,它正在工作: Hello, world! 我想把它改成这样:
这个问题已经有答案了: Evaluate empty or null JSTL c tags (8 个回答) 已关闭 6 年前。 例如 ${post.title} 最佳答案 使用空关键字
我是 Java EE 技术的初学者。我想知道 jSTL-api jar 和 jSTL-impl jar 之间有什么区别。 为什么API和实现是分开的?这是否意味着还有其他可用的实现? 最佳答案 API
我正在尝试在 jetty 中运行一个在 Tomcat 5.5 中运行良好的应用程序。该应用程序使用 servlet 2.4 和 JSP 2.0。 Jetty/Jasper 抛出这个异常: org.ap
所以这是我用来发送包含值 ${masession.idemp} 的参数“idemp”的代码 "> " alt="consulter tickets
这个问题在这里已经有了答案: How to install JSTL? The absolute uri: http://java.sun.com/jstl/core cannot be resol
我正在学习 Spring-MVC 教程,目前我在 part 2 上.本教程要求我下载 jSTL.jar 和 standard.jar,它们曾经是 Jakarta Taglibs 项目的一部分。该项目已
我正在尝试以这种特定格式格式化数字: “1 234.56” 所以,两个小数,用点分隔。并使用空格字符(可选单引号)将数千个分组。输入值永远不会大于 9999.99。 我尝试为此使用模式,甚至尝试使用语
我正在使用 fmt:formatNumber 在 JSTL 中格式化货币,它会以 ($100) 格式显示负货币,如何让它以负数格式显示负货币而不是 ($100)? 非常感谢, 起诉 最佳答案 如果您使
我不知道我做错了什么,但我不能包括 JSTL。我有 jSTL-1.2.jar,但不幸的是我得到了异常: org.apache.jasper.JasperException: The absolute
我只需要这样的东西: ..... function myFunc(param) { if(param == true) { return "aaa"
当我使用 JSTL c:forEach 标签时,我的项目出现以下错误。我正在使用 apache Tomcat v7.0。 我在 WEB-INF\lib 文件夹中添加了以下 jar。 taglibs-s
以下代码导致错误: 错误提示 "error a line 4: unknown symbol 'test'". 如何将 test 从 JSTL 代码传递到 JSP scriptlet? 最
我正在使用 JSF 2.0 (mojarra) + primefaces 开发 Web 应用程序。过去我成功地使用了jSTL库的[c:set]标签来存储一些临时数据或从其他标签中输出。 在我目前的情况
我的实际目标是得到 工作。我目前正在使用 jetty-runner 7.4.2 运行我的 Web 应用程序。作为一个随机的尝试,我下载了一个更新的版本。这样,当我尝试启动我的 Web 应用程序时,我
为了尝试使用 jSTL,我用 maven 安装了 jSTL 1.2 库。但是,当我通过此消息运行 jsp 页面时,“绝对 uri: [ http://java.sun.com/jsp/jstl/cor
当我混合 JSTL 1.0 和 JSTL 1.1 taglib 声明时,它会在我的一些服务器上导致 ParseException,但不是全部。 这是给我带来麻烦的代码块: |STRINGOFTEX
我是一名优秀的程序员,十分优秀!