반응형
이번 포스트에서는 spring과 Jsp 그리고 Jstl을 함께 사용하여 개발하는 방법을 소개한다.
1. Spring + JSP + JSTL 을 사용하여 코드작성하는 방법
- JSP 파일 내에 직접 자바 코드를 작성하는 방식은 과거에 많이 사용되었지만, 최근에는 추천되지 않는 방식이 되었다.
- 대신, 서비스 로직은 서블릿이나 스프링 컨트롤러와 같은 다른 서버 사이드 컴포넌트에서 처리하고, JSP 파일은 주로 뷰(View)의 역할을 담당하는 것이 일반적이다. 서비스 로직에서 필요한 데이터를 처리한 후, 해당 데이터를 컨트롤러를 통해 JSP로 전달하는 방식을 주로 사용한다.
- 컨트롤러는 데이터를 Model 객체에 담아서 JSP로 전달하고, JSP는 JSTL(JavaServer Pages Standard Tag Library)과 EL(Expression Language)을 사용하여 Model 객체에 담긴 데이터를 꺼내어 화면에 표시한다.
예시코드
- 스프링 MVC의 컨트롤러에서 Model 객체를 사용하여 JSP로 데이터를 전달한다. Model 객체의 addAttribute 메소드를 사용하여 데이터를 추가하고, JSP 파일명을 리턴하여 해당 JSP를 렌더링 한다.
- JSP 파일에서는 JSTL과 EL을 사용하여 Model 객체에 담긴 데이터를 꺼내어 화면에 표시할 수 있다.
@Controller
public class MyController {
@Autowired
private MyService myService;
@GetMapping("/")
public String home(Model model) {
// 서비스 로직 실행 후 데이터를 Model에 담음
List<String> items = myService.getItems();
model.addAttribute("items", items);
// JSP 파일명을 리턴하여 해당 JSP를 렌더링
return "home";
}
}
아래는 JSTL + EL을 사용한 JSP 코드의 예시이다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>Items:</h1>
<ul>
<c:forEach items="${items}" var="item">
<li>${item}</li>
</c:forEach>
</ul>
</body>
</html>
- 위의 예시에서는 JSTL의 forEach 태그를 사용하여 items라는 변수에 담긴 데이터를 순회하며 화면에 출력하고 있다. EL의 ${} 표현식을 사용하여 변수의 값을 출력한다.
- 이렇게 서비스 로직에서 데이터를 처리하고 컨트롤러를 통해 JSP로 전달하여 JSTL과 EL을 사용하여 데이터를 화면에 표시하는 방식은 가독성과 유지보수성을 향상시키며, 코드의 재사용성을 높일 수 있다. 또한, 비즈니스 로직과 뷰의 분리를 통해 역할을 명확히 구분할 수 있다.
2023.08.08 - [Spring 기초/서블릿] - Spring Boot 서블릿 연동: Spring과 서블릿의 관계 (2편)
반응형
'Spring 기초 > Spring 기초 지식2' 카테고리의 다른 글
[Spring] AOP: 횡단 관심사 쉽게 이해하기 (0) | 2023.11.13 |
---|---|
Spring Boot 서블릿 연동: Spring과 서블릿의 관계 (2편) (0) | 2023.08.08 |
Spring Boot 서블릿 기초: 서블릿 이해하기 (1편) (0) | 2023.08.08 |