-
Maven에서 JSTL 사용Java 2020. 2. 20. 21:28
이번엔 pom.xml 파일에 JSTL라이브러리를 추가하도록 하겠습니다.
<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
JSTL은 Tomcat이 기본으로 제공하지 않기 때문에, 컴파일할 때도 배포할 때도 사용돼야 합니다.
그래서 scope에 이번엔 provided가 있지 않습니다.
webapp폴더에 앞에서 작성했던 jstl02.jsp 를 붙여넣기를 하도록 하겠습니다.
라이브러리가 변경되었으니, 다시 run on server를 합니다.
실행해도 결과가 아무것도 나오지 않는 것을 확인할 수 있습니다.
프로젝트 프로퍼티를 선택한 후, Project facets 항목을 보면 다이나믹 웹 모듈의 버전이 2.3입니다.
다이나믹 웹 모듈의 2.4부터 EL이 기본으로 사용할 수 있도록 설정되기 때문에 2.3일 경우에는 EL표기법의 결과가 출력되지 않습니다.
앞의 프로젝트처럼 다이나믹 웹 모듈 3.1이 되도록 설정해보도록 하겠습니다.
먼저 WEB-INF의 web.xml 파일을 열어보도록 하겠습니다.
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> </web-app>
위의 내용을 다음과 같이 수정합니다.
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>Archetype Created Web Application</display-name> </web-app>
프로젝트아래의 .settings/org.eclipse.wst.common.project.facet.core.xml 파일을 엽니다.
이클립스 navigator에서 보면 보입니다.
(참고출처 : edwith Maven을 이용한 웹 어플리케이션 실습 댓글 id : 0***
"이클립스 navigator에서 보면 보입니다."
메뉴Window -> Show View -> Navigator
)
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="jst.web" version="2.3"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="java" version="1.8"/> </faceted-project>
을 아래와 같이 수정합니다.
<faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="jst.web" version="3.1"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="java" version="1.8"/> </faceted-project>
프로젝트 프로퍼티의 Project facets항목을 보면 다이나믹 웹 모듈이 3.1로 바뀐 것을 볼 수 있습니다.
이제 jstl02.jsp를 run on server로 실행합니다.
실행을 하지만 오류가 나면서 실행이 안 되는 경우가 있을 수 있습니다.
이클립스의 버그로, 수정되기 전의 데이터와 수정된 데이터가 섞여서 실행되기 때문입니다.
이 경우 웹 어플리케이션을 깔끔히 초기화하고 실행하는 것이 좋을 수 있습니다.
- 기존 tomcat을 종료합니다.
- 혹시 바뀌지 않았다면 프로젝트를 선택하고, 우측버튼을 눌러서 Maven 메뉴 아래의 update project를 선택한 후 확인하세요.
- Servers view에서 기존 Tomcat Runtime을 삭제
- Project 메뉴의 Clean선택
- 프로젝트 익스플로러에서 Server 삭제
위와 같은 과정을 거친 후 Run on Server로 실행해보세요.
결과가 잘 나오는 것을 확인할 수 있습니다.
지금까지 배웠던 내용 중에서 가장 복잡한 것 같은데요.
다이나믹 웹 모듈을 2.3에서 3.1로 바꾸는 것은 프로젝트가 한번 만들어지면, 그 이후부터는 그 프로젝트가 더 이상 사용되지 않을 때까지 계속 사용되기 때문에 자주 개발자가 해야 할 일은 아닙니다.
그 이후부터는 pom.xml에 원하는 기능을 추가하면서 개발을 진행하면 됩니다.
수고하셨습니다.
출처 : edwith.org
'Java' 카테고리의 다른 글
[Java] JVM 구조 (0) 2020.03.05 [JAVA] Implicit Narrowing Conversion (0) 2020.02.24 [JAVA] String -> Date / Date -> String 변환 (0) 2020.02.21 Maven / Java Web Application 디렉토리 구조 (0) 2020.02.21 JSP (0) 2020.02.17