0

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

以下是我的代码 -

控制器.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";
    }

索引.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>

评估工作正常 - 但变量“消息”的字符串为空。

我错过了什么吗?任何指导将不胜感激。

4

2 回答 2

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";
    }
}
于 2012-10-18T13:31:31.257 回答
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;
}
于 2012-10-18T13:09:18.433 回答