GWT、Struts2、JSF-管理CSS-仅在必要时提供

GWT、Struts2、JSF-管理CSS-仅在必要时提供,css,jsf,gwt,Css,Jsf,Gwt,我想知道是否有可能,通过使用JSF的GWT、Struts2,只在页面需要时才向客户端提供资源(例如.css文件) 我的意思不是在加载的页面中包含CSS,而是如果存在自动管理此过程的机制。在JSF2中,可以使用模板或复合组件中的任何位置。JSF将注意将其放入生成的HTML中 例如 因此,无论何时在视图代码中使用,JSF2都会在JSF2中生成的HTML中包含带注释的资源,这可以通过使用模板或复合组件中的任何位置来实现。JSF将注意将其放入生成的HTML中 例如 因此,每当您在视图代码中使用时,J

我想知道是否有可能,通过使用JSF的GWT、Struts2,只在页面需要时才向客户端提供资源(例如
.css
文件)


我的意思不是在加载的页面中包含CSS,而是如果存在自动管理此过程的机制。

在JSF2中,可以使用模板或复合组件中的任何位置。JSF将注意将其放入生成的HTML

例如



因此,无论何时在视图代码中使用
,JSF2都会在JSF2中生成的HTML

中包含带注释的资源,这可以通过使用模板或复合组件中的任何位置来实现。JSF将注意将其放入生成的HTML

例如



因此,每当您在视图代码中使用
时,JSF2都会在生成的HTML

中包含带注释的资源。BalusC的回答似乎已经解决了这一问题,即不可能自动包含您正在寻找的资源。我同意。考虑到这一点,我可以想象一种方法来实现这一点,但这将使生成的页面变得非常复杂和膨胀,并且需要大量的ajax开销,从而使其变得不合理

然后会有一个配置问题来解释当PageX请求css类“hot”时,它需要“main.css”中的“hot”,而不是“company.css”,换句话说。。。配置的数量可能等于自己管理它的工作量

现在,如果您使用Struts2,并且喜欢基于合成的策略,那么Tiles2就是一条直截了当的道路

基本上,您可以制作模板,然后有一个单独的定义文件。该定义说明了要移动到模板中的资源。因此,您可以在某些css文件、脚本文件、JSP中移动,甚至可以编写多个临时文件。然后,您将继承该定义以用于后续定义,并且能够覆盖更改的部分,并在需要时扩展该定义(类似于OOP继承所获得的)。tiles的名称来源于这样一种想法,即您的页面被认为是一系列用于生成页面的瓷砖,尽管继承,但您可以说一组特定的页面将基于特定的布局。当你使用tiles继承时,你会觉得你得到了神奇的资源管理。。。它使事情变得更容易,但它是直截了当的组成


瓷砖自然适合组合,但也支持装饰。许多人对sitemesh发誓,因此主要倾向于装饰方式。您需要研究这两种布局模式,看看什么对您最有意义。

BalusC的回答似乎已经解决了这一问题,即您正在寻找的资源不可能自动包含在内。我同意。考虑到这一点,我可以想象一种方法来实现这一点,但这将使生成的页面变得非常复杂和膨胀,并且需要大量的ajax开销,从而使其变得不合理

然后会有一个配置问题来解释当PageX请求css类“hot”时,它需要“main.css”中的“hot”,而不是“company.css”,换句话说。。。配置的数量可能等于自己管理它的工作量

现在,如果您使用Struts2,并且喜欢基于合成的策略,那么Tiles2就是一条直截了当的道路

基本上,您可以制作模板,然后有一个单独的定义文件。该定义说明了要移动到模板中的资源。因此,您可以在某些css文件、脚本文件、JSP中移动,甚至可以编写多个临时文件。然后,您将继承该定义以用于后续定义,并且能够覆盖更改的部分,并在需要时扩展该定义(类似于OOP继承所获得的)。tiles的名称来源于这样一种想法,即您的页面被认为是一系列用于生成页面的瓷砖,尽管继承,但您可以说一组特定的页面将基于特定的布局。当你使用tiles继承时,你会觉得你得到了神奇的资源管理。。。它使事情变得更容易,但它是直截了当的组成


瓷砖自然适合组合,但也支持装饰。许多人对sitemesh发誓,因此主要倾向于装饰方式。您需要研究这两种布局模式,看看什么对您最有意义。

您的意思是“下载到客户端”吗?这个术语确实是错误的:)上传更多的是从客户端到服务器。CSS/JS文件基本上是从服务器下载到客户端的。我改进了它。你是说“下载到客户端”吗?这个术语确实是错误的:)上传更多的是从客户端到服务器。CSS/JS文件基本上是从服务器下载到客户端的。我改进了它。嗯,是的,但是这看起来像是一个简单的“包含”页面,它将使用.css。我想知道它是否可能包括(例如在索引中)所有的.css文件,并且只下载(从服务器)请求页面所需的css表。有可能吗?太迷人了。我最近在wicket中实现了一种在功能和语法上与@ResourceDependency/@ResourceDependencies机制非常相似的机制,但我并不知道这项技术。这表明:有效做事的方法有限:-)+1@markzzz:不,那是不可能的。客户无法事先知道所提供的任何样式表中是否存在必要的样式。您只负责为特定页面提供客户机实际需要的资源@肖恩:不客气。嗯,是的,但这看起来像是一个简单的“包含”页面,它将使用.css。我想知道它是否可能包括(例如在索引中)all.css fi
<ui:composition
    xmlns:h="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
>
    <h:outputStylesheet library="css" name="specific.css" />
    <h:outputScript library="js" name="specific.js" />
    ...
</ui:composition>
@ResourceDependency(library="css", name="specific.css")
public class CustomComponentWithCSS extends UIComponentBase {
    // ...
}
@ResourceDependencies({
    @ResourceDependency(library="css", name="specific.css"),
    @ResourceDependency(library="js", name="specific.js")
})
public class CustomComponentWithCSSandJS extends UIComponentBase {
    // ...
}