关于struts2自定义标签打包问题,如何访问jar包中的js文件

背景:我在自己的项目组中开发了一个自定义的struts2的ui标签,现在在项目组里已经用起来了,效果还不错。我的初衷很简单,想把这套标签打包成jar包作为公司的可复用资产,以后同事要用的话直接引入标签jar包就可以了,页面也不用引入什么js,css文件。(打包的内容还包含了一些js,css等静态文件)。
现在我的问题是:我在ftl文件中如何定位访问jar包中的js文件?
我参考了struts-jquery的jar包,它的head.htl文件有这样的语句
浏览器解析的结果就是src="项目名/struts/js/base/jquery1.X.X".这个路径怎么就能定位到jar包中的js文件呢?
这个问题困扰我好久了,不知道吧里有没有大神能帮忙解答?睡不着啊!!

4个回答

[quote]src="项目名/struts/js/base/jquery1.X.X".这个路径怎么就能定位到jar包中的js文件呢? [/quote]

以前写过一篇文档,你看一下:
http://sswh.iteye.com/blog/756922

cxl253386709
cxl253386709 解决了 这文章说到点上了
接近 7 年之前 回复

你下载jar包时
如 struts2-jquery-plugin-3.5.1.jar

人家会告诉你 jquery等是哪个版本
Version 3.5.1 ( jQuery 1.8.3, jQuery UI 1.9.2 )

在header.ftl里有如

<#if !jQueryVersion?? >
<#assign jQueryVersion="1.8.3">
</#if>
<#assign jQueryUIVersion="1.9.2">
<#assign struts2jQueryVersion="3.5.1">

<#if parameters.scriptPath?if_exists != "">
<#assign javaScriptBasePath="${parameters.scriptPath?string}">
<#else>
<#assign javaScriptBasePath="${base}/struts/">
</#if>

设置版本

jinnianshilongnian
jinnianshilongnian 看我的第二个回复 struts2 有一个staticResourceLoader 可以加载classpath下静态资源 (即找jar包的 你可以去看下源码)
接近 7 年之前 回复
cxl253386709
cxl253386709 你说的这些我都明白 。我就问你的最后一句 怎么通过${base}/struts/找到jar包中的js文件的?我的项目中根本就没这个文件夹
接近 7 年之前 回复

你问的是struts2怎么去找那些jar包里的资源 是这样的:

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter在处理请求时会调用FilterDispatcher,FilterDispatcher如果没找到mapping(即没找到action) 就当作静态资源处理: 此处有一个staticResourceLoader 如果它能处理 就交给它处理

if (mapping == null) {
// there is no action in this request, should we look for a static resource?
String resourcePath = RequestUtils.getServletPath(request);

            if ("".equals(resourcePath) && null != request.getPathInfo()) {
                resourcePath = request.getPathInfo();
            }

            if (staticResourceLoader.canHandle(resourcePath)) {
                staticResourceLoader.findStaticResource(resourcePath, request, response);
            } else {
                // this is a normal request, let it pass through
                chain.doFilter(request, response);
            }
            // The framework did its job here
            return;
        }

右击你的项目--->build path --->configure build path--->java build path--->Libraries--->Add External JARs--->添加需要的jar包即可 引用的时候 使用import语句即可,如 import ***.java.*一样。
也可以参考dwr的实现方式:[url]http://blog.csdn.net/jiangdragon/article/details/7827593[/url]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问