html或者jsp页面引用jar包中的js文件

一,页面上引用jar包中的js文件的方法

使用java web框架AppFuse的时候发现,jquery、bootstrap等js框架都封装到jar包里面了。这些js文件通过一个wro4j的工具对其进行了压缩集成到一个js文件里面。页面使用的时候的时候,引用这一个js文件即可。通过解读wro对于js处理的过程,找到了html或者jsp引用jar包中的js文件的方法:

<c:set var="base" value="${pageContext.request.contextPath}"/>
<link rel="stylesheet" type="text/css" href="${base}/webjars/bootstrap/3.3.1/css/bootstrap.min.css"/>
<script type="text/javascript" src="${base}/webjars/jquery.treegrid/0.3.0/js/jquery.treegrid.bootstrap3.js"></script>

注:如果是html页面,直接删除${base}和<c:set var="base" value="${pageContext.request.contextPath}"/>即可。

其中bootstrap的位置:

jquery.treegrid的位置:

通过对比可以发现规律,运行期系统会将MATA-INFO/resources下面的文件解压到系统根目录下。

二,解读wro对于jar包中的js以及css的压缩集成以及页面引用

首先,系统引入一个jar包:wro4j-core-1.7.5.jar。

项目的代码里面有个wro配置文件:/src/main/webapp/WEB-INF/wro.xml,该文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<groups xmlns="http://www.isdc.ro/wro">

    <!-- CSS URL Rewriting fails when using webjar resource locator:
         https://github.com/alexo/wro4j/issues/127 -->
    <group name="main">
        <css>classpath:META-INF/resources/webjars/bootswatch-spacelab/3.3.1+2/css/bootstrap.min.css</css>
        <css>/styles/style.css</css>
        <js>classpath:META-INF/resources/webjars/jquery/1.11.1/jquery.min.js</js>
        <js>classpath:META-INF/resources/webjars/bootstrap/3.3.1/js/bootstrap.min.js</js>
        <js>classpath:META-INF/resources/webjars/jquery-cookie/1.3.1/jquery.cookie.js</js>
        <js>/scripts/script.js</js>
    </group>
    <group name="treegrid">
        <css>classpath:META-INF/resources/webjars/bootstrap/3.3.1/css/bootstrap.min.css</css>
        <css>classpath:META-INF/resources/webjars/jquery.treegrid/0.3.0/css/jquery.treegrid.css</css>
        <js>classpath:META-INF/resources/webjars/jquery.treegrid/0.3.0/js/jquery.treegrid.min.js</js>
        <js>classpath:META-INF/resources/webjars/jquery.treegrid/0.3.0/js/jquery.treegrid.bootstrap3.js</js>
    </group>
</groups>

两个group,上面的main是框架带的,下面的treegrid是我加的。

解析标签的标签文件:/src/main/webapp/WEB-INF/tags/assets.tag,这个文件的作用是使用xslt将jsp文件中的<t:assets group="treegrid" type="js"/>标签解析成html标签:<script type="text/javascript" src="/assets/v/92097/treegrid.js"></script>

再一个相关的文件是对assets.tag的声明,/src/main/webapp/common/taglibs.jsp文件中的一行:<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>

串联起来解释一遍:

1.wro.xml是核心的配置文件,wro4j-core-1.7.5.jar根据这个配置文件抽取并压缩相关js文件到一个js文件中。

2.taglibs.jsp中声明了一个标签assets.tag,这个标签在jsp文件中出现时,jsp标签的将自身解析成html标签(指向压缩后的单个js文件),页面就可以引用了。

我为了了解html中引用jar包中的js,网上收索了很多资料,但没有解释的比较全面的。所以写一个博客来记录一下,说不定能帮上正在苦恼的人们。

时间: 2024-08-01 06:33:19

html或者jsp页面引用jar包中的js文件的相关文章

有关打包成可执行jar包后引用jar包中配置文件问题

一 问题由来 有时候我们做一些项目时,需要将一些配置信息写入配置文件中,以供调用.比如说这样: 如果我们需要在Demo.java中读取config.txt这个文件中的配置信息,在这种工程目录下是可以使用File来读取的,但是打包成jar后,使用File将不能读取到config.txt了,除非将这个配置信息放在jar包的外面. 假如说我们用File来读取文件: BufferedReader reader = new BufferedReader(new FileReader(new File("r

(转)java 从jar包中读取资源文件

(转)java 从jar包中读取资源文件 博客分类: java 源自:http://blog.csdn.net/b_h_l/article/details/7767829 在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码:Java代码 [java] view plaincopy //源代码1: package edu.hxraid; import java

[Java基础] 深入jar包:从jar包中读取资源文件

转载: http://hxraid.iteye.com/blog/483115?page=3#comments 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看下面的代码: //源代码1: package edu.hxraid; import java.io.*; public class Resource { public void getRe

java 从jar包中读取资源文件

在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码:Java代码 [java] view plaincopy //源代码1: package edu.hxraid; import java.io.*; public class Resource { public  void getResource() throws IOException{ File fil

【解惑】深入jar包:从jar包中读取资源文件

我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看下面的代码: //源代码1: package edu.hxraid; import java.io.*; public class Resource { public void getResource() throws IOException{ File file=new File("bin/res

JAR包中读取资源文件

我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看下面的代码: 1 //源代码1: 2 3 import java.io.*; 4 public class Resource { 5 public void getResource() throws IOException{ 6 File file=new File("bin/resource/re

springboot jar启动 读取jar包中相对路径文件报错

jar包启动后读取相对路径文件报异常: Caused by: java.io.FileNotFoundException: class path resource [***.***] cannot be resolved to absolute .***.jar/BOOT-INF/classes!/***.** 采用流的方式读取即可解决 // /template/template.html是resource下面的文件 String template=readfile("/template/tem

怎么修改jar包中的class文件然后再重新打成jar包

1.导入到eclipse中, 修改完了 然后导出jar即可 2.jar cf file.jar *.class 将当前目录下所有CLASS文件打包成新的JAR文件 3.对于补丁.之前已经有jar 例如:发现一个bug.那么修改其中一个类,需要在次打包,对于这种情况,只需要把对应的 class放在指定的目录中 例如:file.jar中有一个类Demo 修复了bug需要再次上传,他对应的路径是com.demo.Demo; 那么只需要把Demo.class 在项目classes 目录下,建立一个com

spring加载jar包中的多个配置文件[转载]

在使用spring加载jar包中的配置文件时,不支持通配符,需要一个一个引入,如下所示: Java代码 <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:beanconfigs/applicationContext_1.xml, classpath*:beanconfigs/applicationContext_2.xml, ...