i'm trying load static resources such css files , javascript files in jsp files using relative paths, seems servlet mappings overriding mapping them.
project structure:
webapp/ assets/ scripts/ dashboard.js styles/ common.css web-inf/ views/ pages/ home/ body.jsp web.xml:
... <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/mvc-dispatcher-servlet.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> ... mvc-dispatcher-servlet.xml:
<import resource="applicationcontext.xml" /> <context:component-scan base-package="com.nickythorne.controller" /> <bean class="org.springframework.web.servlet.view.urlbasedviewresolver"> <property name="viewclass" value="org.springframework.web.servlet.view.tiles3.tilesview"/> </bean> <bean id="tilesconfigurer" class="org.springframework.web.servlet.view.tiles3.tilesconfigurer" > <property name="definitions" value="/web-inf/tiles-definitions.xml" /> </bean> <mvc:resources mapping="/assets/**" location="/assets/" /> i jsp file i'm trying load stylesheet:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <base href="${pagecontext.request.scheme}://${pagecontext.request.servername}:${pagecontext.request.serverport}" /> <link rel="stylesheet" type="text/css" href="<c:url value='/assets/styles/common.css'/>" /> the error is:
warn org.springframework.web.servlet.pagenotfound:1108 - no mapping found http request uri [/project/assets/styles/common.css] in dispatcherservlet name 'mvc-dispatcher'
the better approach is:
<c:set var="root" value="${pagecontext.request.contextpath}"/> <link rel="stylesheet" type="text/css" href="${root}/assets/styles/common.css"/> ${root} resolved relative context path regardless of ports, protocol, domain name etc.
Comments
Post a Comment