无法在View中显示数据

时间:2015-02-13 18:36:19

标签: java spring spring-mvc java-ee

我是Java Spring MVC的新手。关于网络上的一些教程,我不知道为什么,但当我从view传递一些文字到controller时,文字似乎没有出现。

Controller

@Controller
public class HelloWorldController {

    @RequestMapping(value = "/helloWorld.htm", method = RequestMethod.GET)
    public ModelAndView helloWorld(){
        String message = "Hello Spring MVC!";
        return new ModelAndView("helloWorld", "message", message);
    }
}

View

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        Message is: ${message}
    </body>
</html>

我所关注的所有教程都有这个确切的代码,但它不会起作用。我在这里想念什么?

2 个答案:

答案 0 :(得分:0)

如果只显示消息,请尝试将HttpServletRequest添加到helloWorld收到的参数中:

public ModelAndView helloWorld(HttpServletRequest request){

然后使用setAttribute来显示消息:

request.setAttribute("message", "Hello Spring MVC!");

编辑:事实证明这个法令是不需要的

我确实忘记了在jsp中你需要类似的东西:

<p><c:out value="${message}" /></p>

这位于页面顶部:

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

答案 1 :(得分:0)

此代码工作正常。可以肯定的是,你正在为helloWorld.htm创建一个JSP文件吗?

我只是将您的代码放入helloWorld.jsp中,它运行正常。

&#13;
&#13;
package com.dhargis.example;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;


@Controller
public class HelloWorldController {


	    @RequestMapping(value = "/helloWorld.htm", method = RequestMethod.GET)
	    public ModelAndView helloWorld(){
	        String message = "Hello Spring MVC!";
	        return new ModelAndView("helloWorld", "message", message);
	    }
	
	
	
}

-------------------------------------JSP----------------------------------------------------


helloWorld.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
	<title>Home</title>
</head>
<body>


<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        Message is: ${message}
    </body>
</html>

</body>
</html>
&#13;
&#13;
&#13;

然后我删除了&lt;%@ taglib uri =&#34; http://java.sun.com/jsp/jstl/core"前缀=&#34; C&#34; %GT;它仍然可以正常工作。

给我发一个跟进问题,或者我可以把它放在Github上。