gpt4 book ai didi

java - 如何将对象从 Spring 3.0 Controller 传递到 JSP View 并使用 JSTL 进行测试

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:35 26 4
gpt4 key购买 nike

首先,我有一个 Spring 3.0 Controller ,其方法类似于以下内容。

我正在向 View 传递一个名为“message”的对象,并希望通过 View 打印该消息(如果它已被“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;
}

View 类似下面,

<%@ 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”,但似乎无法使“ ”语句正常工作。

有人对我做错了什么或更好的方法有任何想法吗?

谢谢

最佳答案

taglib URI 错误。这是旧的 JSTL 1.0 URI。你从哪里弄来的?扔掉那本 10 年前的教程/书 ;) 去获取 JSTL 1.2 here在删除任何旧的 JSTL 库(jSTL.jar standard.jar) 和最终提取的内容(一些糟糕的教程建议您需要提取 .tld 文件并将其放在类路径中,这是错误的)。

最近的JSTL TLD documentation中指定了正确的URI .如果您单击任何一个单独的 JSTL 库,您将在文档顶部看到正确的 URI 示例,例如JSTL core :

Standard Syntax:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

XML Syntax:

    <anyxmlelement xmlns:c="http://java.sun.com/jsp/jstl/core" />

也就是说,您的测试实际上是错误的。你应该使用过${message.message != null}, ${message.message != ''}${not empty message.message} 。您可以在 Java EE tutorial part II chapter 5 中了解有关 EL 的更多信息以及关于 JSTL 的 Java EE tutorial part II chapter 7 .祝你好运。

关于java - 如何将对象从 Spring 3.0 Controller 传递到 JSP View 并使用 JSTL 进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com