Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache Tiles类似于框架,但没有xml配置_Java_Jsp_Layout - Fatal编程技术网

Java Apache Tiles类似于框架,但没有xml配置

Java Apache Tiles类似于框架,但没有xml配置,java,jsp,layout,Java,Jsp,Layout,ApacheTiles框架很棒。但我讨厌它的一点是我必须维护的大型xml配置文件,即使是分区的,我也讨厌将编程和表示信息放在配置文件中 我就是不明白?struts/tiles的作者是如何在配置文件中放置如此多的表示逻辑的呢 我正在搜索一个类似Tiles的框架,但没有该死的XML配置。任何人都可以帮助列出基于复合视图模型的布局框架,这些框架与平铺竞争。您考虑过吗 通过适当的标记/逻辑分离、POJO数据模型和刷新XML的不足,ApacheWicket使开发web应用程序变得简单而愉快。用简单的Jav

ApacheTiles框架很棒。但我讨厌它的一点是我必须维护的大型xml配置文件,即使是分区的,我也讨厌将编程和表示信息放在配置文件中

我就是不明白?struts/tiles的作者是如何在配置文件中放置如此多的表示逻辑的呢

我正在搜索一个类似Tiles的框架,但没有该死的XML配置。任何人都可以帮助列出基于复合视图模型的布局框架,这些框架与平铺竞争。

您考虑过吗

通过适当的标记/逻辑分离、POJO数据模型和刷新XML的不足,ApacheWicket使开发web应用程序变得简单而愉快。用简单的Java和HTML编写的功能强大、可重用的组件替换样板文件、复杂的调试和脆弱的代码


Apache互动程序可以是。

Sitemesh。Sitemesh是一个类似的页面模板系统,但可以在没有xml的情况下完成。如果您有一个或两个反复使用的主模板,那么这就特别好了,无需为每个模板创建xml条目。它目前是Grails中的默认模板系统。Sitemesh 3有一些不错的补充,但在撰写本文时,它还停留在测试阶段,几乎没有文档。它使用了装饰器模式,正如在瓷砖与sitemesh的所有比较中所看到的那样



或者,如果您愿意放弃使用jsp,您可以试试JSF2.0,它具有非常出色的模板功能,不需要xml。这与服务器端代码的JSF组件模型一起肯定有助于减少重复代码。(作为奖励,JSF 2.0的Primefaces组件库是最令人印象深刻的组件/小部件集之一。)

stripes提供的布局标记非常出色。完全不需要配置,易于理解和开始使用。它们在某种程度上非常棒,我认为它们应该从stripes中提取出来,并作为一个单独的项目在github项目空间中进行维护。

您可以在post中看到一个带有Java配置(无XML)的Tiles示例


其思想是使用自己的
tileDefinitionsConfig
实现
DefinitionsFactory
,并调用
tileConfigurer.setDefinitionsFactoryClass(tileDefinitionsConfig.class)。您的新配置包含布局定义。

只是好奇为什么您如此反对这种方法。使用符合某种模式的XML语法的文件只是开发应用程序的另一种语言。现在已经有了一种以声明方式指定应用程序行为而不是对其进行编程的普遍趋势,我认为大多数人会认识到这是一件好事。有些人讨厌XML,因为它太冗长了,但它保持着它的突出地位,因为它可以轻松地用于设计特定于领域的语言。@Konstantin Komissarchik不介意冗长,完全缺乏编译时检查以及必须遍历多个文件才能找到相关代码是它最大的缺点。是的,缺少合适的工具可能是DSL的一个问题。通常,框架编写者将精力集中在运行时上,而没有花足够的时间改进工具/SDK。DSL不具备可靠的构建时验证、重构支持等并没有根本原因。Konstantin,感谢您的详细阐述。编译时检查是最大的问题。以及必须阅读和理解恼人的XML模式。即便如此,如果他们坚持使用XML,至少提供XML和API方法来做同样的事情。我的意思是,在tiles中,将所有的表示布局放在一个XML文件中,为什么?为什么?为什么?如果可以在jsp自定义标记的帮助下将其放在整洁的jsp文件中,除了提到重写方法createTileInitializer()之外,没有任何步骤提到如何执行此操作。Tiles API是如此的复杂,它们还展示了一个从数据库加载定义的示例