템플릿 데이터와 스크립트 요소

HH_Nebula·2023년 1월 19일
0

템플릿 데이터란?

템플릿 데이터란 JSP의 화면 구성요소를 말한다. 시작 부분의 page 지시어를 제외하면 JSP 파일의 전반적인 구조는 HTML의 문서구조를 따른다. 따라서 일반적인 HTML 파일처럼 CSS, 자바스크립트도 사용할 수 있다.

기본적으로 HTML5를 사용하며 문서 구조 중심으로 간략하게 작성하고 데이터 표현은 JSTL과 EL을 사용한다. 화면 디자인을 위해 자체적인 CSS 정의 이외에도 Bootstrap과 같은 라이브러리를 사용할 수 있으며, REST API 호출을 위해 Axios 같은 자바스크립트 라이브러리 역시 사용할 수 있다.

다만 React, Vue와 같은 자바스크립트 요소는 프론트엔드 개발 기술로 JSP와 함께 사용하지 않는다.

스크립트 요소

JSP는 HTML과 자바 코드를 섞어 사용할 수 있는데, 이때 사용되는 자바 코드를 스크립트 요소라고 한다. 현재는 JSP 파일에서 직접적인 자바 코드는 거의 사용하지 않지만 기본적인 내용은 이해하고 있어야 한다.

JSP에서 스크립트를 사용하기 위한 태그는 다음과 같다.

<%! %> 선언 태그

  • JSP가 서블릿 코드로 변환될 때 _jspService() 메서드 안에 들어가게 되므로 JSP에서는 일반 자바 코드와 달리 멤버 변수나 메서드 선언은 기본적으로 불가능하다.
  • 멤버 변수나 메서드 선언이 필요하다면 사용할 수는 있으나 권장하지 않는다.

<%= %> 표현 태그

  • 웹 브라우저를 통해 클라이언트에 전달될 자바 표현식을 포함한다.
  • out.println()의 인자로 적합한 모든 자바 코드가 가능하다.
  • 사칙연산, 메서드 호출, 변숫값 출력 등에 사용된다.
  • EL로 대체할 수 있다.
<h2><%= member.getUserName() %></h2>
<%= java.time.LocalDateTime.now() %>

<% %> 스크립트릿 태그

  • 모든 자바코드의 사용이 가능하다. 단, _jspService() 메서드 내에 포함되는 것을 고려해야 한다.
  • 서블릿 코드로 변환될 때 모든 HTML은 out.write() 형태로 변경된다.
  • HTML과 스크립트릿을 중간에 섞어 사용하는 것도 가능하다.
  • MVC 패턴 적용과 JSTL + EL로 대체할 수 있다.

다음은 로그인 페이지에서 입력한 이름을 가져와 화면에 출력한 다음 사용자 목록을 for 문을 이용해 출력하는 부분의 JSP 코드이다. for 문에서 out.println()을 이용해 이름과 이메일을 출력하지 않고 표현 태그를 사용한다는 점을 주의한다.

<% String name = request.getParameter("userName"); %>

<h2><%= name %></h2>
<hr>

<table>
	<% for(Member member : memberList) { %>
		<tr>
			<td><%= member.name %></td>
			<td><%= member.email %></td>
		</tr>
	<% } %>
</table>
  • request.getParameter()는 HTTP 파라메터 값을 가져온다.
  • 반복문을 사용할 때 자바코드와 HTML 혼용이 가능하다.
profile
공부하고 기록하고 복습하고

0개의 댓글