JSF组件库生成了糟糕的html代码.这不行,但可以接受吗?

Rom*_*man 6 html jsf ria

当我使用jsp/jstl和jQuery开发web-apps时,我曾经写过很好的html代码,与样式和脚本分开.JSP插入了一些奇怪的空格和空白行,但没有别的.

现在我正在尝试用jsf开发.JSF有很多用于创建具有大量组件的RIA的库,因此使用jsf和一些组件库开发Web应用程序要快得多.

但是我已经尝试过的所有库都生成了糟糕的HTML,混合了一些脚本和一些额外的隐藏输入和html内部的样式.这些库通常还提供表格布局(具有不同的Panel,GridPanel和其他组件).

对我来说它看起来很糟糕,我不能在我的HTML中看到如此大的混乱.

我不完全确切,但我认为ASP.NET会产生类似的东西.

所以,问题是:它是一个新的网络开发标准 - 创建快速和脏的HTML?

Bal*_*usC 2

JSP 插入了一些奇怪的空格和空行,但没有插入任何其他内容。

顺便说一下,这个空白是可以修剪的。在 Tomcat 和克隆中,您所需要做的就是将JspServlet's init 参数设置trimSpacestrue

但是我已经尝试过的所有库都会生成糟糕的 html,其中混有脚本以及 html 内的一些额外的隐藏输入和样式。这些库通常还提供表格布局(具有不同的面板、GridPanel 和其他组件)。

如果这是您主要关心的问题,那么只需继续基本的 JSF 实现即可。它提供了您开始所需的一切,如有必要,还可以在Tomahawk的帮助下获得更多增强的组件(例如无表无线电/复选框)和缺少的组件(例如文件上传和数据列表)。

这样,您就可以按照通常的方式执行 CSS:完全外部化在单独的文件中,并且仅styleClass在 JSF 中使用。不要使用该style属性混合内联 CSS。如果您想要对以冒号分隔的 JSF 客户端 ID 进行样式化(冒号在 CSS 中是非法标识符),那么您只需在选择器中使用反斜杠对其进行转义即可。例如#formid\:inputid { background: gray; }

也不要使用on*属性混合内联脚本。使用jQuery引入不显眼的Javascript。至于来自 JSF 组件的自动生成的 Javascript,在基本实现中您只会得到它,其中h:commandLink基本上是一个<a>提交隐藏 POST 表单的元素。由于这在语义/技术/搜索引擎优化上是错误的,所以我根本不会使用它。只需用于h:commandButton提交表单和h:outputLink导航。

至于表格设计,从 JSF 1.2 开始,您可以在模板中编写纯 HTML。您可以只使用<div>元素来定义定位的内容元素。如果您是纯粹主义者,您甚至可以使用 JSF<h:panelGroup layout="block">来获取 HTML<div>元素。完全没有必要使用<h:panelGrid>来定位内容元素。

我不太清楚,但我认为 ASP.NET 会生成类似的东西。

确实如此。

那么,问题是:创建快速而肮脏的 html 是否是 Web 开发的新标准?

不,它就在你手里。