Следовал Руководству Spring MVC, Но Буквальные Значения Шаблона Будут Отображаться Неправильно?

#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"%>