首先,我有一个Spring3.0控制器,其方法类似于下面的方法。
我向视图传递了一个名为" message“的对象,如果消息是由"doStuff”方法设置的,则希望通过视图打印该消息。
@RequestMapping("/index")
public ModelAndView doStuff() {
ModelAndView mav = new ModelAndView();
Map<String, String> message = new HashMap<String, String>();
message.put("message", "Hello World");
mav.setViewName("pages/myView");
mav.addObject("message", message);
return mav;
}该视图类似于下面的视图:
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<html>
<head>
<title>Test</title>
</head>
<body>
<c:if test="${message.message} != null">
<div class="msg">test1: ${message.message}</div>
</c:if>
<c:if test="${message.message} != ''">
<div class="msg">test2: ${message.message}</div>
</c:if>
<c:if test="${message.message}">
<div class="msg">test3: ${message.message}</div>
</c:if>
<c:if test="not empty ${message.message}">
<div class="msg">test4: ${message.message}</div>
</c:if>
<div class="msg">test5: ${message.message}</div>
</body>
</html>到目前为止,只有"test5“打印消息,但我只想在"${message.message}”不为null时打印消息。
我尝试过"http://java.sun.com/jstl/core_rt“和"http://java.sun.com/jstl/core",但似乎无法让"”语句正常工作。
有没有人知道我做错了什么,或者有更好的方法?
谢谢
发布于 2010-02-13 06:22:14
您的前两个<c:if>标记应该如下所示:
<c:if test="${message.message != null}">
<div class="msg">test1: ${message.message}</div>
</c:if>
<c:if test="${message.message != ''}">
<div class="msg">test2: ${message.message}</div>
</c:if>注意test属性中!=和}的位置--条件需要在大括号内。
还有#3中的测试:
<c:if test="${message.message}">
<div class="msg">test3: ${message.message}</div>
</c:if>只有当message.message的值实际上是值" true“时,才会计算为true。因为它不是(它是"Hello World"),所以测试失败。
测试#4的格式也不正确(“非空”也需要在大括号内)……
https://stackoverflow.com/questions/2255352
复制相似问题