struts如何查找css文件?

Posted

技术标签:

【中文标题】struts如何查找css文件?【英文标题】:How is struts finding css files? 【发布时间】:2014-06-29 19:57:33 【问题描述】:

我正在使用 struts 2。在我的 JSP 中,我有一个 <s:head /> 标记。这会触发这个 css 链接被插入到最终的 html 文件中:

<link href="/app/styles/design.css" rel="stylesheet" type="text/css" media="all"/>
<link href="/app/styles/print.css" rel="stylesheet" type="text/css" media="print"/>
<link rel="stylesheet" href="css/flick/jquery-ui-1.10.0.xyz.min.css" />

struts 是如何知道这些文件的?如何添加或更改其他 CSS 文件?

【问题讨论】:

忘记了其他主题。我只用simple的那个,自己处理HTML,那些文件都没有 【参考方案1】:

Struts UI 标签通过执行 freemarker 模板生成 HTML 内容。默认模板位于/template 文件夹下的核心包中。 head 标签的默认模板是head.ftl

每个主题有几个文件。通过为标签、页面或应用程序选择主题来使用相应的模板。查看更多关于Selecting Themes 的信息。

如果您想更改某些模板,您需要创建一个模板文件夹并将其指定为templateDir。然后将您的head.ftl 复制/粘贴到相应主题下的此文件夹中,例如/template/xhtml/head.ftl。现在,当template is loading 时,它将在此文件夹中搜索您覆盖的模板。

extending an existed theme 可以提供另一种解决方案。你可以选择任何适合你的。

【讨论】:

我检查了 freemarker 模板。没有什么可以告诉我为什么它正好使用 3 个三个 css 文件以及我必须做些什么来更改它们。 它在这些 FTL 中使用的次数与使用的 link 标签一样多。您可以发布您的模板代码以查看 css 链接的内容和次数。 我正在使用包含struts/xhtml/styles.css 的xhtml 主题。实际上,我刚刚在生成的 HTML 中也发现了这一点。但这仍然不能解释其他 CSS 文件的来源。 检查您的项目文件中是否有 .ftl 文件或其他模板,例如速度模板 (.vm)。 没有.ftl 文件。【参考方案2】:

这是一个讨厌的。毕竟我发现应用程序正在使用sitemesh 并且 在最终的jsp 中使用&lt;s:head&gt; 标记。这意味着前 3 个 CSS 文件来自 sitemesh 模板,struts/xhtml/styles.css 来自 xhtml fremarker 模板。

【讨论】:

以上是关于struts如何查找css文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用属性文件使用struts2更改jquerytheme

如何在 Struts 2 中进行动态 URL 重定向?

如何使用 @import 连接 CSS 文件?

struts2是如何加载相关的package元素节点信息的

struts2中的struts.xml文件如何建立?

如何以UTF-8格式将资源文件存储在struts中