복붙노트

[SPRING] Spring Tomcat과 정적 리소스와 mvc : resources

SPRING

Spring Tomcat과 정적 리소스와 mvc : resources

나는 처음부터 웹 앱을 만들기 시작했다. 오래 전에 이미 실행중인 앱을 작업하기 전에 전체 설정 단계를 처리 할 필요가 없었습니다. 나는 스프링 3과 톰캣 6을 사용하고 있으며 Eclipse 3.6을 사용하고있다.

이미지 제공 (또는 컨트롤러 응답과 다른 다른 문제)에 큰 문제가 있습니다. 실제로 나는 나의 jsps에있는 나의 심상이있는 방법을 찾아 낼 수 없다. 내 구성 :

 <servlet-mapping> 
     <servlet-name>springDispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
 </servlet-mapping> 

web.xml 및

<bean name="/accise" class="it.jsoftware.jacciseweb.controllers.MainController">

</bean>

서블릿 컨텍스트 (물론 기타).

나는 여기에 많은 메시지와 이것에 대해 이야기하는 다른 포럼을 읽었다.

<mvc:resources mapping="/resources/**" location="/resources/" />

하지만 내 servlet-context.xml에 삽입하면 이미지를 제공 할 수 있지만 컨트롤러 "accise"는 도달 할 수 없습니다. 내가 잘못 사용했거나 자원 태그를 잘못 이해 했습니까? 올바른 방법은 무엇입니까?

업데이트 솔루션을 찾았습니다 !!! :)

문제는 내 servlet-config.xml이 하나의 선언을 놓쳤다는 것입니다.

이제 컨트롤러에 주석을 사용합니다.

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">


    <context:component-scan base-package="it.jsoftware.jacciseweb.controllers"></context:component-scan>
    <mvc:annotation-driven />

    <bean
        class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

<mvc:resources mapping="/resources/**" location="/resources/" />

해결법

  1. ==============================

    1.는 주석이 달린 컨트롤러와 잘 작동하지만 다른 종류의 컨트롤러 매핑에는 약간의 추가 구성이 필요할 수 있습니다.

    는 주석이 달린 컨트롤러와 잘 작동하지만 다른 종류의 컨트롤러 매핑에는 약간의 추가 구성이 필요할 수 있습니다.

    귀하의 경우에는 BeanNameUrlHandlerMapping을 수동으로 선언해야합니다 (일반적으로 기본적으로 등록되지만 는 기본 설정을 자체 구성 적용의 부작용으로 재정의합니다).

    <bean class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
    
  2. ==============================

    2.나는 똑같은 문제가 있었다. 나는 for와 같은 전체 경로를 사용하여이 문제를 해결할 수 있었다.

    나는 똑같은 문제가 있었다. 나는 for와 같은 전체 경로를 사용하여이 문제를 해결할 수 있었다.

    CSS

    <link rel="stylesheet" type="text/css" media="screen" href="/my-web-app/resources/css/smoothness/jquery-ui-1.8.21.custom.css">
    

    및 자바 스크립트

    <script type="text/javascript" src="/my-web-app/static/js/jquery-1.4.4.min.js"></script?
    

    Spring이 좀 더 나은 접근법을 제시하기 전에 이것이 문제를 해결할 수 있다면 알려주십시오.

  3. ==============================

    3.나 역시 같은 문제가 있었다. 서블릿 경로를 해결하기 위해 리소스에 대한 실제 참조 전에 스프링 매크로를 추가하여 해결했습니다.

    나 역시 같은 문제가 있었다. 서블릿 경로를 해결하기 위해 리소스에 대한 실제 참조 전에 스프링 매크로를 추가하여 해결했습니다.

    코드에서는별로 좋지 않지만이 솔루션을 사용하면 서버와 서블릿에 응용 프로그램을 배포하는 실제 컨텍스트와 독립적으로 작업 할 수 있습니다. 보통, 당신은 당신의 url에 실제 서블릿이 언급되는 것을 원하지 않습니다.

    예를 들어 ColdStoneJava의 대답을 언급하면 ​​다음과 같습니다.

      <script type="text/javascript" src="<@spring.url '/static/js/jquery-1.4.4.min.js'/>"></script>
    

    또한 URL에서 절대적으로 참조해야하므로 슬래시 '/ ...'가 필수적입니다.

    이것은 나의 경험에서 작동하지 않을 것이다 :

      <script type="text/javascript" src="<@spring.url 'static/js/jquery-1.4.4.min.js'/>"></script>
    

    건배.

  4. from https://stackoverflow.com/questions/4784060/spring-tomcat-and-static-resources-and-mvcresources by cc-by-sa and MIT license