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 или некоторую библиотеку тегов для этой цели.