JSP Получить стоимость имущества

Я очень плохо знаком с JSP, поэтому мне нужна ваша помощь. Google не дал мне то, что я искал, я мог просто ввести неправильный термин поиска. Поэтому, пожалуйста, прости меня, но я думаю, что это действительно глупый вопрос, однако, похоже, ничего в сети нет об этом.

Я создал экран входа в систему (работает нормально), проверяются учетные данные (работает нормально), и на главном экране появляется DTO, который должен быть оценен.

Как видите, есть тег jsp:getProperty, он работает нормально, если я пытаюсь получить доступ к имени параметра, используя jsp:getProperty. Я хочу сделать несколько дополнительных проверок, поэтому я попытался получить доступ к свойству в разделе <%%>, но там оно пустое. Есть ли способ получить доступ к объекту в разделе <<%%> после того, как вы получили его с помощью тега jsp:useBean?

Вот основной файл JSP:

 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <%@ 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" %> 
 <%@ page import="de.daniel.docmanager.dto.User"  %>   
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
 </head>
 <body>
 <jsp:useBean id="user" class="de.daniel.docmanager.dto.User" scope="session">  
 </jsp:useBean>

<%
String name =  user.getName();
System.out.println("name: " + name);  //<= name is null
%>

Hello <jsp:getProperty property="name" name="user"/> //<= works fine
</body>
</html>

Спасибо большое за вашу поддержку. Я действительно ценю это.

1 ответ

Решение

Это плохая практика использовать скриптлеты в JSP . Прочитайте этот хороший SO Q&A: Как избежать Java-кода в JSP-файлах? на эту тему.


Возвращаясь к вашей проблеме. Вы определяете бин, используя Стандартное действие как:

<jsp:useBean id="user" class="de.daniel.docmanager.dto.User" scope="session">  
</jsp:useBean>

useBean тег будет искать экземпляр класса "de.daniel.docmanager.dto.User" в session, Если экземпляр еще не существует, он создаст новый экземпляр "de.daniel.docmanager.dto.User" и поместит его в session,

Вы должны получить объект из session объем:

<%
 String name =  ((de.daniel.docmanager.dto.User)session
                                      .getAttribute("user")).getName();
 System.out.println("name: " + name);  
%>

Я хочу сделать некоторые дополнительные проверки, поэтому я попытался получить доступ к свойству в разделе <%%>

Вы можете использовать JSTL или некоторую библиотеку тегов для этой цели.

Другие вопросы по тегам