Java 从Spring控制器加载CSS

Java 从Spring控制器加载CSS,java,css,spring,controller,Java,Css,Spring,Controller,在我的UI代码中,我有一个指向css样式表的链接,该样式表的href=“url for spring controller” 我希望Spring控制器返回UI页面用于样式设置的CSS文件 首先我想知道,这是否可能?其次,Spring控制器需要返回什么?我需要返回css文件的byte[]表示并将其放入ResponseEntity中,还是在Servlet响应上使用某种类型的outputstream 什么样的 @RequestMapping(value = "/getCSS/{userId}", me

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

我希望Spring控制器返回UI页面用于样式设置的CSS文件

首先我想知道,这是否可能?其次,Spring控制器需要返回什么?我需要返回css文件的byte[]表示并将其放入ResponseEntity中,还是在Servlet响应上使用某种类型的outputstream

什么样的

@RequestMapping(value = "/getCSS/{userId}", method= RequestMethod.GET, produces={"text/css"})
@ResponseStatus(HttpStatus.OK)
public ??? getCSS(){
}
UI代码和具有控制器的Spring应用程序不属于同一项目


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

您可以将静态资源(如果不需要保护的话)放在您的webapp文件夹中。例如
webapp/static/style.css


您可以通过以下方式获取此文件:
localhost:8080/applicationName/static/style.css

您可以将静态资源(如果不需要保护)放在webapp文件夹中。例如
webapp/static/style.css

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

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";
   }
}
Webservlet.xml

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/static/" />
    <property name="suffix" value=".css" />
    </bean>

    <mvc:resources mapping="/static/**" location="/WEB-INF/static/" />
    <mvc:annotation-driven/>

您还可以返回html、jsp等页面

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";
   }
}
Webservlet.xml

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/static/" />
    <property name="suffix" value=".css" />
    </bean>

    <mvc:resources mapping="/static/**" location="/WEB-INF/static/" />
    <mvc:annotation-driven/>


此外,您还可以返回html、jsp等页面,如果资源位于不同的项目中,您可以将该项目的名称存储在applicationContext中,并从视图中这样引用它

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

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

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

Here标签的可能副本用于映射静态页面。映射属性必须是指定http请求的URL模式的Ant模式。location属性必须指定一个或多个具有静态页面(包括图像、样式表、JavaScript和其他静态内容)的有效资源目录位置。可以使用逗号分隔的值列表指定多个资源位置。此处标记用于映射静态页面。映射属性必须是指定http请求的URL模式的Ant模式。location属性必须指定一个或多个具有静态页面(包括图像、样式表、JavaScript和其他静态内容)的有效资源目录位置。可以使用逗号分隔的值列表指定多个资源位置。