2013-07-14 3 views
0

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

Я создал экран входа (отлично работает), и учетные данные проверяются (отлично работает), а на главном экране появляется 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> 

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

+0

Избегайте создания сценариев и используйтеBean, идите для EL и JSTL! – NINCOMPOOP

+0

хорошо, хорошая идея, но можете ли вы дать мне подсказку? Я хочу проверить, если пользовательский объект установлен, если нет, я хочу перенаправить на страницу входа. Как бы вы это сделали? – Daniel

+0

Вы можете сделать это, используя простой сервлет или даже фильтр. – NINCOMPOOP

ответ

2

Плохая практика использования scriptlets в JSP. Прочитайте это приятно SO Q&A : How to avoid Java Code in JSP-Files? на эту тему.


Возвращаясь к вашей проблеме. Вы определяете боб с помощью Standard Action как:

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

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

+0

Спасибо большое, ребята, вы спасли мою ночь. Я очень ценю это. – Daniel

Смежные вопросы