javascript - struts 2 如何从他们的 struts.jar 中将 javascript 文件包含在 jsp 中?

标签 javascript jsp struts2

我注意到 struts 2 框架的 javascript 客户端验证功能使用了 struts2 JAR 文件中的 javascript 文件。 javascript 文件显然仅通过使用框架中的标记以某种方式包含在 JSP 页面中。

如果我设法做到这一点,那么对于我在每个新的 Web 项目中总是复制的许多 javascript 库文件将非常有帮助,因为我会将它们全部放在一个 JAR 文件中,然后每个项目都不会有不同的文件副本(如您所知,这会造成很多麻烦)。

有人知道他们是怎么做到的吗?

最佳答案

好吧,我从工作中抽出一些时间来研究框架是如何做到这一点的。事实证明,Struts 2 有一个提供静态内容的实现。这是在配置文件 struts.properties 中通过属性配置的:struts.serve.static

如果该属性设置为 true JSP 页面中以路径 /struts/ 或以下路径开头的任何静态内容(javascript、css、图像等) /static/ 将由 struts FilterDispatcher 和其他称为 DefaultStaticContentLoader 的类提供服务。

例如:

<script language="JavaScript" type="text/javascript" src="struts/someScript.js"></script>
<script language="JavaScript" type="text/javascript" src="static/otherScript.js"></script>

这两个 javascript 文件都将由 Filter 和 ContentLoader 提供。

默认情况下,ContentLoader 类将仅在 Struts 2 核心 JAR 中的两个文件夹中查找请求的文件:org.apache.struts2.statictemplate

现在有一种方法可以让 ContentLoader 在其他地方查找,它在过滤器参数的 web.xml 文件中配置如下:

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
    <param-name>packages</param-name>
    <param-value>insert.your.package.with.static.content.here</param-value>
</init-param>
</filter>

我找了好久,关于这个功能的资料不多。如果你想阅读它的文档,它在 FilterDispacher 类的 Struts2 API 中 here就在它说“提供静态内容”的地方。

希望您会发现它有用,对我来说这是一个很棒的功能,而且实现得很好。

关于javascript - struts 2 如何从他们的 struts.jar 中将 javascript 文件包含在 jsp 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870440/

相关文章:

jsp - 如何使用Struts 2添加checkbox值暂存并放到session obj中

java - Struts 2 下载文件为 0 字节

html - 如何设置 <s :property> value to Struts 2 Checkbox in Iterator and give all the selected check boxes value in Action List

Javascript 获取对象内部的对象

javascript - 如何使用 ionic 框架显示 RSS feed 中的图像

javascript - 如何更改当前页面链接的颜色 - HTML/CSS/JavaScript

java - 如何使用 :if to compare the value of s:hidden

javascript - 如何将相同的 jquery 添加到不同的 div 但具有不同的内容?

java - 关于从 Java servlet 接收数据的几个问题

java - 如何从jsp页面将日期插入mysql数据库?