Spring MVC –如何在JSP页面中包含JS或CSS文件

在本教程中,我们将向您展示如何在JSP页面中包括JavaScriptCSS之类的静态资源。

摘要步骤:

  1. 将静态资源(如CS,JS或图像)放入此文件夹webapp\resources
  2. 创建一个Spring mvc:resources映射
  3. 通过JSTL标签c:url或Spring标签spring:url包含在JSP页面中

PS此项目已在Spring 4.1.6.RELEASE中进行了测试。

1.项目目录

标准的Maven文件夹结构将js和css文件之类的静态资源放入webapp\resources文件夹中。

spring-mvc-include-css-

2. Spring资源映射

声明mvc:resources ,以将“ URL路径”映射到物理文件路径位置。

spring-web-config.xml
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="com.mkyong.web" />

    <bean
	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix">
		<value>/WEB-INF/pages/</value>
	</property>
	<property name="suffix">
		<value>.jsp</value>
	</property>
    </bean>

    <mvc:resources mapping="/resources/**" location="/resources/theme1/"  
	cache-period="31556926"/>

    <mvc:annotation-driven />
	
</beans>

在上面的示例中,来自此url模式/resources/**任何请求,Spring都会从/resources/mytheme1/查找资源。

将来,您可以通过更新mvc:resources轻松地更改为新主题

<mvc:resources mapping="/resources/**" location="/resources/theme-new/" />

3.包含在JSP页面中

要在JSP页面中包含CSS或JS,可以使用JSTL标签c:url或Spring标签spring:url

3.1 JSTL标记c:url示例。

hello.jsp
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <link href="<c:url value="/resources/css/main.css" />" rel="stylesheet">
    <script src="<c:url value="/resources/js/jquery.1.10.2.min.js" />"></script>
    <script src="<c:url value="/resources/js/main.js" />"></script>
</head>
<body>
<h1>1. Test CSS</h1>

<h2>2. Test JS</h2>
<div id="msg"></div>

</body>
</html>

3.2 Spring标签spring:url示例。

hello.jsp
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html>
<html lang="en">
<head>
	<spring:url value="/resources/css/main.css" var="mainCss" />
	<spring:url value="/resources/js/jquery.1.10.2.min.js" var="jqueryJs" />
	<spring:url value="/resources/js/main.js" var="mainJs" />
	
	<link href="${mainCss}" rel="stylesheet" />
    <script src="${jqueryJs}"></script>
    <script src="${mainJs}"></script>
</head>
<body>
<h1>1. Test CSS</h1>

<h2>2. Test JS</h2>
<div id="msg"></div>

</body>
</html>

3.3 Javascript文件。

/webapp/resources/mytheme/js/main.js
jQuery(document).ready(function($) {

	$('#msg').html("This is updated by jQuery")

});

3.4 CSS文件。

/webapp/resources/mytheme/css/main.css
h1{
	color:red;
}

或者
对于讨厌JSTL的人,您可以使用“页面上下文”变量来获取如下资源:

<link href="${pageContext.request.contextPath}/resources/css/main.css" rel="stylesheet" >

4.演示

使用Maven命令运行项目: $ mvn jetty:run

网址: http:// localhost:8080 / spring-css /

spring-mvc-include-css-demo

5. WEB-INF中的静态资源?

问:我可以将静态资源放在WEB-INF文件夹中吗?
答:是的,您可以,Spring映射仍然可以使用,例如,

<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/theme1/" />

但是,这不是一个好习惯。 您可以忽略该规则,但是许多开发人员和插件将在同一级别的WEB-INF中而不是在WEB-INF寻找静态资源。

下载源代码

下载它– spring-mvc-css-example.zip (57 KB)

参考

  1. Spring MVC服务静态资源

翻译自: https://mkyong.com/spring-mvc/spring-mvc-how-to-include-js-or-css-files-in-a-jsp-page/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值