【问题标题】:Spring MVC doesn't display data in view [duplicate]Spring MVC 不在视图中显示数据 [重复]
【发布时间】:2012-01-26 10:24:45
【问题描述】:

可能重复:
JSP: EL expression is not evaluated

我的控制器中有以下代码。

@RequestMapping(value = "/sum", method = RequestMethod.GET)
public String sum(@RequestParam("input1") String value1,
        @RequestParam("input2") String value2, ModelMap model) {
    model.addAttribute(
            "msg",
            Integer.toString(Integer.parseInt(value1)
                    + Integer.parseInt(value2)));
    return "index";
}

以下是我的观点:

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

<html>
<body>
<h2>Hello World!</h2>
<h2>Movie Name : <c:out value="${msg}"></c:out></h2>    
</body>
</html>

但我的输出是

Hello World!
Movie Name : ${msg}

我哪里错了?

【问题讨论】:

标签: java spring spring-mvc


【解决方案1】:

这是因为 jstl 库不可用。要么复制到WEB-INF/lib,要么直接复制到Tomcat/lib目录,然后重启Tomcat。

【讨论】:

    【解决方案2】:

    您正在返回一个视图字符串“索引”,但您的模型没有被发送/附加到响应视图,因此在您的 JSP 中没有找到/绑定 $msg

    试试这个

     @RequestMapping(value = "/sum", method = RequestMethod.GET)
     public ModelAndView sum(@RequestParam("input1") String value1, @RequestParam("input2") String value2, ModelMap model) {
            model.addAttribute( "msg", Integer.toString(Integer.parseInt(value1) + Integer.parseInt(value2)));
            return new ModelAndView("index", model);
     }
    

    【讨论】:

    • 我不认为这是正确的——你可以返回一个字符串来表示要渲染的视图,模型中的对象仍然是暴露的。
    • 如果是这种情况,视图根本不会打印任何内容。 Spring在返回String时会携带model,因此在这种情况下不需要更改返回ModelAndView的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    相关资源
    最近更新 更多