SpringMVC变量没有进入View

时间:2012-10-18 13:05:23

标签: spring jsp

我是Spring的新手,正在尝试使用Spring Framework设置基本的Web应用程序。但我面临的问题是消息变量没有传递给视图 - jsp没有显示消息。

以下是我的代码 -

Controller.java

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

@Controller

public class HomeController {
        @RequestMapping(method=RequestMethod.GET, value="/")
    public String index(){
        ModelAndView mav = new ModelAndView();
        mav.setViewName("index");
        String message = new String("Hello Welcome - Please click to login");
        System.out.println(message);
        mav.addObject("message", message);
            return "index";
    }

的index.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>Login</title>
</head>
<body>
<c:url value="login" var="somevar" />
<h1>Click here to </h1> <a href= "${somevar}">${1+1}</a>  
 <c:out value="${message}"/>
</body>
</html>

评估工作正常 - 但变量'message'的字符串为空。

我错过了什么吗?任何指导都将非常感谢。

2 个答案:

答案 0 :(得分:3)

您必须从您的页面中获取模型。请尝试以下代码:

@Controller
public class UpdateController {

@RequestMapping(method=RequestMethod.GET, value="/")
public String index(Model model){
    String message = new String("Hello Welcome - Please click to login");
    System.out.println(message);
    model.addAttribute("message", message);
    return "index";
    }
}

答案 1 :(得分:1)

您的index()控制器方法返回String,而不是ModelAndView对象。尝试:

public ModelAndView index(ModelAndView mav){
    mav.setViewName("index");
    String message = new String("Hello Welcome - Please click to login");
    System.out.println(message);
    mav.addObject("message", message);
    return mav;
}