编写jsp标记库

时间:2012-12-08 14:52:25

标签: model-view-controller jsp tld

我正在使用MVC模型,其中我为不同的应用程序编写了太多基于Web的小部件,这导致我解决问题的大量重复工作我计划为每个应用程序编写jsp标记的新包小部件(使用tld)和生成的jar我将包含在许多使用这些小部件的应用程序中,我也能成功地使用它。

但是在这里我有点担心小部件使用的css和javascript。

假设我在库中用jsp标签本身编写css然后在这种情况下,它每次都会获取css和脚本,这会产生额外的延迟,以防我在客户端编写公共css然后用于使用我的小部件的多个应用程序包需要一次又一次写css吗?

我在MVC项目中包含的小部件jar。

jar -tvf AcmeUIUtils-1.0.jar
     0 Fri Dec 07 07:41:56 IST 2012 META-INF/
   106 Fri Dec 07 07:41:54 IST 2012 META-INF/MANIFEST.MF
     0 Fri Dec 07 15:54:40 IST 2012 com/
     0 Fri Dec 07 15:54:40 IST 2012 com/amazon/
     0 Fri Dec 07 15:54:40 IST 2012 com/amazon/spotui/
     0 Fri Dec 07 15:54:40 IST 2012 com/amazon/spotui/basicui/
  2339 Fri Dec 07 02:11:38 IST 2012 com/amazon/spotui/basicui/AcmeMessage.class
  1684 Fri Dec 07 15:54:40 IST 2012 com/amazon/spotui/basicui/Ping.class
     0 Fri Dec 07 15:54:40 IST 2012 com/amazon/spotui/utils/
  2989 Fri Dec 07 15:54:40 IST 2012 com/amazon/spotui/utils/AcmeTags.class
     0 Fri Dec 07 07:41:40 IST 2012 META-INF/css/
   635 Fri Dec 07 07:40:14 IST 2012 META-INF/css/error.css
  1059 Fri Dec 07 14:47:20 IST 2012 META-INF/spot-ui-component.tld
     0 Fri Dec 07 15:54:40 IST 2012 test-resources/

现在我的问题是如何以优雅的方式在我的应用程序中加载error.css?或者我是否需要在小部件级别进行更改?

我不介意任何针对该问题的开源解决方案。但我只需要jsp标签。

1 个答案:

答案 0 :(得分:2)

从servlet 3.0开始,放在WEB-INF / lib下的jar文件可以包含将由webapp直接提供的资源。这些资源必须放在jar文件的META-INF / resources目录下。

因此,如果您的标记库jar包含文件META-INF/resources/js/MyTaglib.js,则可以使用URL直接使用此文件

http://the.host.com/theWebApp/js/MyTaglib.js

如果你的目标是pre-servlet3.0 webapps,那么告诉开发人员将你的taglib的CSS和JS文件部署到webapp中的特定目录下。