JSTL

[jstl] c:url 태그, 파일의 절대경로/상대경로

반응형

에러메시지가 뜨지 않고 404페이지가 보인다는 것, 경로를 제대로 쓴 것 같은데 파일을 못 찾아간다는 것,

그것은 당신이 절대경로와 상대경로의 개념에 대한 이해가 부족하다는 것.

<c:url> 태그의 속성을 제대로 파악하지 못하고 있다는 것... 

<c:url> 태그를 제이세션 오류 없이 쓰려면 web.xml파일에 설정을 해 둬야 한다. (아직 못 찾았음)

여기다 할거야 web.xml

c:url 태그는 로컬와 웹에서 동적으로 경로를 할당해 주는 태그이기 때문에 제이세션아이디를 저장하는데, 쿠키사용을 막은 유저들인 경우 또는 맨 첫페이지에서 이미지 경로를 제대로 뿌려주지 못해 404에러가 발생할 수 있다. (여기까지 내가 이해한게 맞는지 다시 확인 필요)

이런 경우, 화면을 새로고침하면 정상적으로 이미지를 뿌려주긴 하지만 이런상황을 방지하기 위해서 contextpath를 적용해주는 게 좋다. 서칭 중 나왔던 블로그 한 곳에서는 이런 이유 때문에 페이지 url은 c:url태그를 써도 좋으나, 이미지소스와 같은 파일경로에 대해서는 contextpath 사용을 권장하고 있었다.

web.xml 파일에 아래와 같이 써주면 페이지마다 taglib 쓸 필요가 없다는데.. 나중에 시도해 볼 것.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 
  ............................... 생략 ........

  <jsp-config>
  	<jsp-property-group>
  		<url-pattern>*.jsp</url-pattern>
  		<el-ignored>false</el-ignored>
  		<page-encoding>UTF-8</page-encoding>
  		<scripting-invalid>false</scripting-invalid>
  		<include-prelude>/WEB-INF/views/common/include.jsp</include-prelude>
  	</jsp-property-group>
  </jsp-config>

......................... 생략 .....
</web-app>

출처: developer0513.tistory.com/4

 

web.xml 설정 ( include-prelude )

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.c..

developer0513.tistory.com

무엇보다도 다시 한 번, 코드를 짤 때는 점 하나 찍는 것도 중요하다. 휘뚜루마뚜루 하려고 들지 말고, 슬래시 하나 긋고 안 긋고에도 의미를 생각하면서 해야 할 필요가 있다. 아무 생각 없이 코드를 복붙하거나 따라쓰지 말자. 여기에서는 왜 앞뒤로 슬래시 또는 확장자를 작성하지 않는 것인지, 여기서는 왜 이걸 다 써야 하는 것인지 생각해 볼 것.

728x90
반응형

'JSTL' 카테고리의 다른 글

[jstl] var값을 받아왔는데 NumberFormat 오류가 나는 경우  (0) 2020.12.26