2011-12-09 2 views
1

Java 서블릿 애플리케이션의 WEB-INF 디렉토리에 여러 개의보기 파일 (.HTML 확장자 포함)이 있습니다. 보기 내에서 컨트롤러에 정의 된 변수를 참조 할 수 있기를 원합니다.HTML 페이지의 참조 제어기 변수

컨트롤러 :

String email_address = ... 

전망 :

<INPUT type='text' name='email' value='<%= email_address %>'/> 

는 불행히도 <% = %> 구문이 유효하지 않다.

올바른 구문은 무엇입니까?

** 편집 **

이 차이를 만드는 경우

, 내가 참조하고있어 HTML로 :

request.getRequestDispatcher("/WEB-INF/form_auth.html").forward(request, response); 

답변

2

그럴 구문이 없다; 그러한 기능은 존재하지 않습니다.

JSP에서 참조하기 위해 개체를 범위에 넣어야합니다. HTML 파일에서 동적 속성을 참조하려면 JSP 프로세서 (또는 다른 템플릿 메커니즘)를 통해 HTML 파일을 실행해야합니다.

또는 .html 개의 URL을 서블릿 메커니즘을 통해 매핑하고 JSP (또는 다른 템플릿)를 .html URL의 실제 구현으로 사용할 수 있습니다.

최근에는 스크립틀릿 (<%= %> 구문)을 사용하지 않았습니다. 이것은 일반적인 JSP EL (${ } 구문) 및 범위 지정된 속성 (일반적으로 요청 범위)을 사용하여 수행해야합니다.

예를 들어, 하나의 변수에 노출 될 수 :

// Java: 
// Java conventions would name this "emailAddress", not "email_address". 
request.setAttribute("emailAddress", emailAddress); 

<%-- JSP --%> 
${emailAddress} 

을 또는 완전한 DTO 객체를 생성 :

// Java 
dto.emailAddress = "[email protected]"; 
request.setAttribute("dto", dto); 

<%-- JSP --%> 
${dto.emailAddress} 
+0

+1 - 내 대답은 완전히 불필요했다. –

+0

@lwburk 말하기 어렵다; 만약 그들이 정말로'.html' 파일이고 컨테이너에 의해 처리되지 않는다면, 그것은 OP가 기대하기 때문에 확실히 작동하지 않을 것입니다. –