wsa*_*ams 6 java spring jsp jstl spring-mvc
首先,我有一个Spring 3.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;
}
Run Code Online (Sandbox Code Playgroud)
该视图类似于以下内容,
<%@ 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>
Run Code Online (Sandbox Code Playgroud)
到目前为止,只有"test5"正在打印消息,但我只想在"$ {message.message}"不为空时打印消息.
我试过" http://java.sun.com/jstl/core_rt "和" http://java.sun.com/jstl/core ",但似乎无法得到"<c:if />"语句正常工作.
谁会对我做错了什么或更好的方法有任何想法?
谢谢
小智 2
您的前两个<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>
Run Code Online (Sandbox Code Playgroud)
请注意测试属性中 != 和 } 的位置 - 条件需要位于大括号内。
另外,#3 中的测试:
<c:if test="${message.message}">
<div class="msg">test3: ${message.message}</div>
</c:if>
Run Code Online (Sandbox Code Playgroud)
仅当 message.message 的值实际上是值“true”时,才会评估为 true。由于它不是(它是“Hello World”),因此测试失败。
测试 #4 的格式也不正确(“非空”也需要位于大括号内)...
| 归档时间: |
|
| 查看次数: |
29525 次 |
| 最近记录: |