Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Spring控制器中收集CSS/JS资源_Spring_Servlets_Spring Mvc - Fatal编程技术网

在Spring控制器中收集CSS/JS资源

在Spring控制器中收集CSS/JS资源,spring,servlets,spring-mvc,Spring,Servlets,Spring Mvc,我想在一个控制器中收集所有css/js资源 这将导致每个资源有一个HTTP请求 例如: package my.package; // [...imports...] @Controller @RequestMapping( "/res" ) public class ResourcesController { @RequestMapping( value = "/style.css", headers = "content-type=text/css" ) // [...] coll

我想在一个控制器中收集所有css/js资源

这将导致每个资源有一个HTTP请求

例如:

package my.package;

// [...imports...]

@Controller
@RequestMapping( "/res" )
public class ResourcesController
{
  @RequestMapping( value = "/style.css", headers = "content-type=text/css" )
  // [...] collect all css files from /WEB-INF/css/**

  @RequestMapping( value = "/scripts.js", headers = "content-type=text/javascript" )
  // [...] collect all js files from /WEB-INF/js/**
}
我已经有了一个使用ApacheTiles的DispatcherServlet,所以我想我需要创建一个新的servlet

<servlet>
  <servlet-name>resources</servlet-name>
  <servlet-class>?org.springframework.web.servlet.ResourceServlet?</servlet-class>
  <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>resources</servlet-name>
  <url-pattern>/res/*.css</url-pattern>
  <url-pattern>/res/*.js</url-pattern>
</servlet-mapping>

资源
?org.springframework.web.servlet.ResourceServlet?
0
资源
/res/*.css
/res/*.js
类org.springframework.web.servlet.ResourceServlet正确吗

那么,我必须在我的资源servlet.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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd">

  <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver" />

  <context:component-scan base-package="my.package" />

</beans>

我的映射方法在控制器中应该是什么样子? 任何示例代码都非常有用。在internet上找不到任何内容

我已经有了一个使用ApacheTiles的DispatcherServlet,所以我想我需要创建一个新的servlet

<servlet>
  <servlet-name>resources</servlet-name>
  <servlet-class>?org.springframework.web.servlet.ResourceServlet?</servlet-class>
  <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>resources</servlet-name>
  <url-pattern>/res/*.css</url-pattern>
  <url-pattern>/res/*.js</url-pattern>
</servlet-mapping>
不,你应该只拥有DispatcherServlet每个Spring控制器都由这个servlet处理


但总的来说,你做的事情看起来很奇怪

  • Spring已经有了一个允许访问静态资源的“工具”
    ResourceHttpRequestHandler
    请参见
比如说

   <mvc:resources location="/, classpath:/META-INF/web-resources/"
    mapping="/resources/**" />

  • 但也许你可以尝试更复杂的事情,比如
我已经有了一个使用ApacheTiles的DispatcherServlet,所以我想我需要创建一个新的servlet

<servlet>
  <servlet-name>resources</servlet-name>
  <servlet-class>?org.springframework.web.servlet.ResourceServlet?</servlet-class>
  <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>resources</servlet-name>
  <url-pattern>/res/*.css</url-pattern>
  <url-pattern>/res/*.js</url-pattern>
</servlet-mapping>
不,你应该只拥有DispatcherServlet每个Spring控制器都由这个servlet处理


但总的来说,你做的事情看起来很奇怪

  • Spring已经有了一个允许访问静态资源的“工具”
    ResourceHttpRequestHandler
    请参见
比如说

   <mvc:resources location="/, classpath:/META-INF/web-resources/"
    mapping="/resources/**" />

  • 但也许你可以尝试更复杂的事情,比如
不完全确定您为什么要这样做。考虑到你找不到关于它的任何资源,这表明很少有人能找到。我完全不知道Spring部分,但我至少可以看出你的URL模式是错误的。
*
只能是最后一个字符的第一个。例如,
/res/*
*.js
。不完全确定为什么要这样做。考虑到你找不到关于它的任何资源,这表明很少有人能找到。我完全不知道Spring部分,但我至少可以看出你的URL模式是错误的。
*
只能是最后一个字符的第一个。例如
/res/*
*.js