Всем привет. Вопрос такой. Есть простейшее веб-приложение, чья логика должна получать текущую дату, заменять название дня недели и выводить полученное значение на JSP. Краткий код:
/* .model */
public class UserDate implements Serializable {
private String day;
public UserDate() {}
public UserDate(String day) {
this.day = day;
}
/*getters and setters*/
Есть сервис, который с этим бином работает:
/* .service */
public class ServiceUserDate {
private String[] tamrielDays =
{"Morndas", "Tirdas", "Middas",
"Turdas", "Fredas", "Loredas", "Sundas"};
private LocalDate date = LocalDate.now();
public String getLoreDay() {
String loreDay = "";
DayOfWeek day = date.getDayOfWeek();
DayOfWeek[] dayOfWeeks = DayOfWeek.values();
for (int i = 0; i < dayOfWeeks.length; i++) {
if (day.equals(dayOfWeeks[i])) {
loreDay = tamrielDays[i];
}
}
return loreDay;
}
И есть сервлет, который результат работы сервиса по получению даты должен отдавать JSP:
/* .controller */
public class ControllerServlet extends HttpServlet {
static ServiceUserDate serviceUserDate = new ServiceUserDate();
public void init(ServletConfig servletConfig) {
try {
super.init(servletConfig);
} catch (ServletException e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
UserDate date = new UserDate();
date.setDay(serviceUserDate.getLoreDay());
request.setAttribute("date", date);
RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
dispatcher.forward(request, response);
}
Я говорю "должен", потому что на самом деле он упорно возвращает null, что бы я ни делал. Не помогли ни изменение порядка загрузки load-on-startup, ни попытки использовать jstl вместо скриптлетов, ничего. JSP выглядит так:
<jsp:useBean id="date" scope="request" class="model.UserDate">
<jsp:setProperty name="date" property="*" />
</jsp:useBean>
<%@ page language="java" contentType="text/html; charset=UTF8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<meta charset="UTF-8">
<title>Calendar</title>
</head>
<body>
<div align="center">
<p>
<%= date.getDate() %>
</p>
</div>
</body>
</html>
Я понятия не имею, как заставить это вывести простейшую переменную. Причем затык именно при получении даты; если вместо date.getDate() на странице вызвать date.toString(), то он нормально отработает, т.е. объект успешно создается перед тем, как выдать null на запросе getDate(). Проблема именно в установке даты. Этот "проект" планировался как легкая разгрузка головы перед изучением ORM: поделать разметку, покрутить стили, легкий такой фронтэнд... В итоге на Хибернейте написано два CRUD'а (там тоже сервлеты и JSP, тоже нужно получать и передавать запросы, все работает!), написаны первые хеллоуворлды на Spring, а этот null так никуда и не делся и воз и ныне там. В чем я ошибаюсь, какую элементарщину я упустил? Укажите на ошибку, ребят, или хотя бы подскажите, в какую сторону копать. Буду очень признателен.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме
В этом уроке по JavaFX предложено создать приложение - адресную книгуЧеловека, занесённого в эту адресную книгу, можно удалить, предварительно...
Как сделать проверку на процессы Windows если процесс VMexe найден тогда программа закрывается если не найден тогда продолжает выполнение
Есть приложение Javafx, запускается там, разумеется, где есть jreМожно ли как сделать, чтобы jar файл запускался на компьютерах без установленного...