首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将对象从Spring3.0控制器传递到JSP视图并使用JSTL进行测试

如何将对象从Spring3.0控制器传递到JSP视图并使用JSTL进行测试
EN

Stack Overflow用户
提问于 2010-02-13 05:51:15
回答 3查看 30.7K关注 0票数 6

首先,我有一个Spring3.0控制器,其方法类似于下面的方法。

我向视图传递了一个名为" message“的对象,如果消息是由"doStuff”方法设置的,则希望通过视图打印该消息。

代码语言:javascript
运行
复制
@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;
}

该视图类似于下面的视图:

代码语言:javascript
运行
复制
<%@ 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",但似乎无法让"”语句正常工作。

有没有人知道我做错了什么,或者有更好的方法?

谢谢

EN

Stack Overflow用户

回答已采纳

发布于 2010-02-13 06:22:14

您的前两个<c:if>标记应该如下所示:

代码语言:javascript
运行
复制
<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中的测试:

代码语言:javascript
运行
复制
<c:if test="${message.message}">
    <div class="msg">test3: ${message.message}</div>
</c:if>

只有当message.message的值实际上是值" true“时,才会计算为true。因为它不是(它是"Hello World"),所以测试失败。

测试#4的格式也不正确(“非空”也需要在大括号内)……

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2255352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档