从Spring Controller加载CSS

时间:2016-02-17 11:08:08

标签: java css spring controller

在我的UI代码中,我有一个指向css样式表的链接,其中href =“url for spring controller”。

我希望Spring Controller返回UI页面用于样式化的CSS文件。

首先我想知道,如果这是可能的话?,其次是Spring Controller需要返回什么?我是否需要返回css文件的byte []表示并将其放在ResponseEntity中,或者在Servlet响应中使用某种输出流?

喜欢什么?

@RequestMapping(value = "/getCSS/{userId}", method= RequestMethod.GET, produces={"text/css"})
@ResponseStatus(HttpStatus.OK)
public ??? getCSS(){
}

具有控制器的UI代码和Spring应用程序不属于同一项目。

不同的用户有不同的样式,Spring应用程序从数据库中获取用户css文件。因此,css文件不能简单地放入/ static文件夹或/ resources文件夹,因为不同的用户会有不同的css文件。

3 个答案:

答案 0 :(得分:0)

您可以在webapp文件夹中放置静态资源(如果它们不必受保护)。例如webapp/static/style.css

您可以使用以下代码获取此文件:localhost:8080/applicationName/static/style.css

答案 1 :(得分:0)

CONTROLER

-> _

Webservlet.xml

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class WebController {

   @RequestMapping(value = "/staticPage", method = RequestMethod.GET)
   public String redirect() {

      return "redirect:/static/final.css";
   }
}

此外,您可以返回页面,如html,jsp

答案 2 :(得分:0)

如果资源位于不同的项目中,您可以在applicationContext中存储该项目的名称,并在您的视图${applicationScope.resourcesProject}中像这样引用它

<link href="/${applicationScope.resourcesProject}/resources/css/style.css" rel="stylesheet" type="text/css"/>