2012-02-03 3 views
1

Я хотел бы собрать все ресурсы css/js в контроллере.Соберите ресурсы 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/** 
} 

У меня уже есть DispatcherServlet, который использует Apache Tiles, так что я предполагаю, что я должен сделать новый сервлет ?!

Является классом 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> 

И как мои методы отображения должны выглядеть в контроллере? Любой пример кода был бы очень полезен. Не можете найти что-либо в Интернете ...

+0

Не совсем уверен, почему вы хотели бы это сделать. И учитывая тот факт, что вы не можете найти никаких ресурсов, это говорит о том, что мало кто это делает. –

+0

У меня нет абсолютно никакого представления о части Spring, но я могу хотя бы сказать, что ваш шаблон URL неправильный. «*» Может быть только первым из последнего символа. Например. '/ res/*' или '* .js'. – BalusC

+0

http://developer.yahoo.com/performance/rules.html – dtrunk

ответ

1

У меня уже есть диспетчерский диспетчер, который использует Apache Tiles, поэтому, я думаю, мне нужно сделать новый сервлет ?!

Нет - у вас должен быть только диспетчер. - Каждый контроллер весны обрабатывается этим сервлетом.


Но в целом выглядит странно, что вы делаете.

, например

<mvc:resources location="/, classpath:/META-INF/web-resources/" 
    mapping="/resources/**" /> 
  • Но, возможно, вы пытаетесь что-то более сложное, как Jawr?
+0

Jawr - это то, что я искал, спасибо! – dtrunk