我是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'的字符串为空。
我错过了什么吗?任何指导都将非常感谢。
答案 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;
}