#java #spring
Вопрос:
Поэтому я следовал руководству о том, как создать Spring MVC, но проблема, с которой я сталкиваюсь, заключается в том, что он, похоже, неправильно отображает литеральные значения шаблона.
Вот руководство и код:
https://www.youtube.com/watch?v=7ArHUCL_RRc
https://github.com/RameshMF/spring-mvc-tutorial/tree/master/springmvc5-helloworld-exmaple
По сути, я следую ему один к одному, создавая модель, контроллер и конфигурацию, которые должны отображать сообщение, а также текущую дату и время. Однако он неправильно отображает литералы шаблона, показывая их буквально как ${HelloWorld.message}. Я не уверен, что это проблема того, что Адский мир не создается, или это что-то другое. Какие-нибудь советы?
адский мир.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Spring 5 MVC - Hello World Example | javaguides.net</title>
</head>
<body>
<h2>${helloWorld.message}</h2>
<h4>Server date time is : ${helloWorld.dateTime}</h4>
</body>
</html>
HelloWorldController.java
package net.te549.springmvc.controller;
import java.time.LocalDateTime;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.ui.Model;
import net.te549.springmvc.model.HelloWorld;
@Controller
public class HelloWorldController {
@RequestMapping("/helloworld")
public String handler(Model model) {
HelloWorld helloWorld = new HelloWorld();
helloWorld.setMessage("Hello World from TE549!!!");
helloWorld.setDateTime(LocalDateTime.now().toString());
model.addAttribute("helloWorld", helloWorld);
return "helloworld";
}
}
HelloWorld.java
package net.te549.springmvc.model;
public class HelloWorld {
private String message;
private String dateTime;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message=message;
}
public String getDateTime() {
return dateTime;
}
public void setDateTime(String dateTime) {
this.dateTime=dateTime;
}
}
(Если мне нужно показать больше кода, дайте мне знать)
Комментарии:
1. Я удалил свой ответ, потому что он был неправильным. (Я был слишком быстр…). Я мало что знаю о JSP — может быть, возвращаемая строка должна быть
helloWorld
вместоhelloworld
? (верхний регистр W )2. Это не совсем работает, так как редактирование HelloWorldController.java’s
return "helloWorld"
возвращает ошибку, связанную с невозможностью найти «HelloWorld.jsp».
Ответ №1:
Пожалуйста, проверьте, есть ли какие-либо ошибки/исключения в журналах, если нет, попробуйте добавить это в свой JSP:
<%@page isELIgnored="false"%>