2013-07-14 2 views
0

저는 JSP가 매우 새롭기 때문에 여러분의 도움이 필요합니다. Google은 내가 찾고있는 것을 제공하지 않았기 때문에 잘못된 검색어를 입력했을 수도 있습니다. 제발 용서해주세요.하지만 그게 정말 바보 같은 질문이라고 생각합니다.하지만 아무것도 그물에있는 것처럼 보이지는 않습니다.JSP 속성 값 얻기

로그인 화면을 만들었으므로 (정상적으로 작동합니다) 자격 증명이 확인되고 (정상적으로 작동합니다) 주 화면에 평가할 DTO가 표시됩니다.

jsp : getProperty 태그가 있습니다. jsp : getProperty를 사용하여 매개 변수 이름에 액세스하려고하면 잘 동작합니다. 추가 검사를하고 싶습니다. 따라서 < %%> 섹션 내의 속성에 액세스하려했으나 null입니다. jsp : useBean 태그로 객체를 검색 한 후에 < < %% 섹션 내의 객체에 액세스하는 방법이 있습니까?

<?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> 

귀하의 지원을 주셔서 대단히 감사합니다

다음은 주요 JSP 파일입니다. 나는 정말로 그것을 고맙게 생각한다.

+0

Scriptlets 및 useBean을 피하십시오. EL 및 JSTL로 이동하십시오! – NINCOMPOOP

+0

좋아, 좋은 생각이지만, 나에게 힌트를 줄 수 있니? 사용자 개체가 설정되어 있는지 확인하고 싶으면 로그인 페이지로 리디렉션하고 싶습니다. 어떻게 할 건데? – Daniel

+0

간단한 서블릿 또는 필터를 사용하여이를 수행 할 수 있습니다. – NINCOMPOOP

답변

2

스크립틀트을 JSP에 사용하는 것은 나쁜 습관입니다. 이 주제에 대해이 멋진 SO Q&A : How to avoid Java Code in JSP-Files?을 읽으십시오.


문제가 발생했습니다. session에서 "de.daniel.docmanager.dto.User" 클래스의 인스턴스를 찾습니다

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

useBean 태그 : 당신은 표준 작업를 사용하여 빈을 정의하고 있습니다. 인스턴스가 이미 존재하지 않으면 "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