一,页面上引用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,网上收索了很多资料,但没有解释的比较全面的。所以写一个博客来记录一下,说不定能帮上正在苦恼的人们。

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

  1. idea无法引用jar包中的class

    最近由eclipse换idea的过程中,出现了一个很奇妙的问题! 项目是maven+git+idea管理的,idea某次在使用的过程中,电脑死机重启后,发现无法引用jar包中的class.包括jdk中 ...

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

    [解惑]深入jar包:从jar包中读取资源文件 http://hxraid.iteye.com/blog/483115 TransferData组件的spring配置文件路径:/D:/develop/ ...

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

    (转)java 从jar包中读取资源文件 博客分类: java   源自:http://blog.csdn.net/b_h_l/article/details/7767829 在代码中读取一些资源文件 ...

  4. 深入jar包:从jar包中读取资源文件getResourceAsStream

    一.背景 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等). 在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不 ...

  5. Jar中的Java程序如何读取Jar包中的资源文件

    Jar中的Java程序如何读取Jar包中的资源文件 比如项目的组织结构如下(以idea中的项目为例): |-ProjectName |-.idea/  //这个目录是idea中项目的属性文件夹 |-s ...

  6. java 从jar包中读取资源文件

    在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码: Jav ...

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

    转载: http://hxraid.iteye.com/blog/483115?page=3#comments 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的 ...

  8. 深入jar包:从jar包中读取资源文件

    我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...

  9. maven引入多个spring jar包中存在同名文件的问题

    项目打包后执行报错:Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespaceht ...

随机推荐

  1. NetBios 的结构体详解

    [NetBios 的结构体详解] NetBIOS是早期的局域网传输协议. 1.结构体. 2.命令 NetBIOS命令的使用方式有两种,即等待和非等待(或称为同步与异步)方式. 如果命令码的高阶位是0时 ...

  2. man curl_easy_init(原创)

    curl_easy_init(3) libcurl 手册 curl_easy_init(3) 名字 curl_easy_init - 开始一个简单的libcurl会话 梗概 #include < ...

  3. 同时打开两个excel工作窗口

    先打开你想要同时打开的两个excel文件,有两个方法可以同时打开两个窗口:首先选取任意一个文件,1. 点击“窗口”菜单==>"重排窗口"==>选择你想同时打开的样式== ...

  4. java中trim()函数是什么

    trim() 去除字符串前缀和后缀空格 文件名:Test.java ,编译通过 public class Test {     public static void main(String args[ ...

  5. Java(数组)动手动脑

    1>数组作为方法参数 阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 源代码: // PassArray.java // Pas ...

  6. python:爬虫

    模块: (1)url管理器:对url进行管理 (2)网页下载器(urllib2):将需要爬取的url指定的网页以字符串的形式下载下来 (3)网页解释器(BeautifulSoup):解析 利用urll ...

  7. 在ubuntu16编译安装nginx-1.10.2(full)完全自带组件

    第一步:先安装全部用到的包 apt install gcc libpcre++-dev libssl-dev make \ libxml2-dev libxslt-dev libgd-dev libg ...

  8. Xcode7以后 使用空模板

    Xcode7以后的版本没有空模板可以选择 习惯使用空模版的 可以自己拷贝空模版文件夹 放到模版的位置 重启就可以使用了 1:首先 需要有一个空模版 没有空模板的可以在下面路径下下载一个 并解压 htt ...

  9. 配置tomcat解压版

    配置Tomcat[解压版] 选择解压版的Tomcat的理由是可以让我们使用多个Tomcat,但是配置上就会出现一些问题,需要我们手动进行更改配置.我的Tomcat版本是:apache-tomcat-6 ...

  10. EAA脚本语言0.2

    对上一版的改进.IL生成问题大部分解决了. 运行效果 脚本源码 #using "System"; #using "System.Drawing"; #using ...