【问题标题】:Is there a Java web framework that can reliably produce XHTML 1.0 Strict?是否有可以可靠地生成 XHTML 1.0 Strict 的 Java Web 框架?
【发布时间】:2011-05-21 16:13:36
【问题描述】:

我正在启动一个 Java 项目,其中客户端要求使用 XHTML 1.0 Strict。基于 XHTML 的 JSF Facelets 起初似乎是一个不错的选择,但我发现它们不能用于生成 XHTML Strict,社区认为这是a very low priority issue

是否还有其他支持呈现为 XHTML Strict 的 Java 框架? JSTL 标签库呢?

【问题讨论】:

  • 我知道 Struts 1.3.x 标签可以渲染 xhtml,但至于 Strict?,我只是在每个页面上声明它的定义(为了安全起见)。
  • 嗯,任何与 JSF 和 GWT(以及类似)不同的东西都不会从其核心组件生成任何 HTML。对于 JSP,有一些标记库可能会或可能不会生成严格的 html,但这取决于特定的标记库。
  • 除此之外 - 对严格的要求并不合理。如果他们想要的下一件事是让它在 IE6 上运行呢:)
  • @Bozho 让它在 IE6 上工作可能与严格验证所需的相反:-)
  • @Bozho:至少,标签库几乎是 JSF 核心组件的一部分——我认为没有它们你实际上无法使用它。总的来说,我宁愿不再使用带有 scriptlet 的 JSP。所以,是的,我正在寻找一个框架和标签库(它们似乎是齐头并进的),可以用来可靠地生成 XHTML Strict。正如您自己提到的那样:只需要一个错误的属性或标签放置在核心标签中,您就输了。

标签: java xhtml xhtml-1.0-strict


【解决方案1】:

我将在这里稍微扩展一下我的评论。 JSF 不是一个常规的 Web 框架。它是一个基于组件的网络框架。 GWT、Vaadin、Echo 等也是如此。如果他们不产生严格的 XHTML,那么他们就无法轻松解决。 (好吧,如果你愿意,你可以在 JSF 中更改 Component/Renderer)

另一方面,Spring-MVC、Struts、Grails 等框架是基于动作的 Web 框架。它们没有作为固有部件的组件。是的,它们确实提供了方便的标签库,但是如果它们碰巧无法生成严格的 xhtml,你可以不用它们。例如您可以使用<form:input>,但您也可以使用<input type="text" />,只需设置正确的namevalue

大多数基于动作的框架都依赖 JSTL 来实现视图中的流控制 (JSP)。所以没有scriptlet。但是 JSTL 本身不呈现任何标记。所以你可以使用 JSTL + 你的手写标记来生成严格的 XHTML。

将使用的标签库是另一回事。例如,如果你想要一个日历,你可以使用一个 taglib,它可能无法呈现正确的 xhtml。但您也可以使用 jQuery 日历 - 对于基于操作的框架而言差异不会很大。

也就是说,我有使用 Spring-MVC 和 Grails 的经验,您可以使用它们 - 它们允许对生成的标记进行细粒度控制。

【讨论】:

  • 只是好奇:如果没有 Spring MVC 的 <form:form> 标签,绑定动作是否容易?它不会生成name 属性吗? (即根据 XHTML Strict 无效)
  • <form id="command" action="/account/login" method="post"> - 从我最近的项目中生成的表单。所以它不会生成名称。即使是这样,您也可以使用<form> 并设置actionmethod - 它们就足够了。
【解决方案2】:

Spring Web MVC 2.0.x 的文档表明相关的标记库产生 HTML4.0.1/XHTML1.0 有效标记。这可能是一个很好的起点,因为我希望 2.5 甚至 3.0 也能支持这一点。

http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
相关资源
最近更新 更多