템플릿 데이터란 JSP의 화면 구성요소를 말한다. 시작 부분의 page 지시어를 제외하면 JSP 파일의 전반적인 구조는 HTML의 문서구조를 따른다. 따라서 일반적인 HTML 파일처럼 CSS, 자바스크립트도 사용할 수 있다.
기본적으로 HTML5를 사용하며 문서 구조 중심으로 간략하게 작성하고 데이터 표현은 JSTL과 EL을 사용한다. 화면 디자인을 위해 자체적인 CSS 정의 이외에도 Bootstrap과 같은 라이브러리를 사용할 수 있으며, REST API 호출을 위해 Axios 같은 자바스크립트 라이브러리 역시 사용할 수 있다.
다만 React, Vue와 같은 자바스크립트 요소는 프론트엔드 개발 기술로 JSP와 함께 사용하지 않는다.
JSP는 HTML과 자바 코드를 섞어 사용할 수 있는데, 이때 사용되는 자바 코드를 스크립트 요소라고 한다. 현재는 JSP 파일에서 직접적인 자바 코드는 거의 사용하지 않지만 기본적인 내용은 이해하고 있어야 한다.
JSP에서 스크립트를 사용하기 위한 태그는 다음과 같다.
<%! %>
선언 태그
_jspService()
메서드 안에 들어가게 되므로 JSP에서는 일반 자바 코드와 달리 멤버 변수나 메서드 선언은 기본적으로 불가능하다.<%= %>
표현 태그
<h2><%= member.getUserName() %></h2>
<%= java.time.LocalDateTime.now() %>
<% %>
스크립트릿 태그
_jspService()
메서드 내에 포함되는 것을 고려해야 한다.다음은 로그인 페이지에서 입력한 이름을 가져와 화면에 출력한 다음 사용자 목록을 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>