Java 从Spring控制器加载CSS
在我的UI代码中,我有一个指向css样式表的链接,该样式表的href=“url for spring controller” 我希望Spring控制器返回UI页面用于样式设置的CSS文件 首先我想知道,这是否可能?其次,Spring控制器需要返回什么?我需要返回css文件的byte[]表示并将其放入ResponseEntity中,还是在Servlet响应上使用某种类型的outputstream 什么样的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
@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和其他静态内容)的有效资源目录位置。可以使用逗号分隔的值列表指定多个资源位置。