Сначала у меня есть контроллер Spring 3.0 с методом, подобным следующему.
Я передаю представление объект с именем «сообщение» и надеюсь напечатать это сообщение через представление, если оно было установлено методом «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}» не равно нулю.
Я пробовал как "http://java.sun.com/jstl/core_rt", так и "http://java.sun.com/jstl/core", но не может показаться чтобы операторы "‹c:if /›" работали правильно.
У кого-нибудь есть идеи относительно того, что я делаю неправильно или лучший способ сделать это?
Спасибо