当我使用jsp/jSTL和jQuery开发Web应用程序时,我曾经写过漂亮的html代码,与样式和脚本分开。 JSP插入了一些奇数空格和空白行,但没有其他内容。

现在,我正在尝试使用jsf进行开发。 JSF有很多库来创建带有许多组件的RIA,因此使用jsf和一些组件库开发Web应用程序应该更快。

但是我已经尝试过的所有库都会生成可怕的html以及与脚本混合在一起的脚本,这些脚本中还包含一些其他隐藏的输入和html内的样式。这些库通常还提供表布局(具有不同的Panel,GridPanel和其他组件)。

对我来说,这看起来很糟糕,我无法在html中看到这么大的困惑。

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

因此,问题是:这是Web开发的新标准-创建快速又脏的html吗?

最佳答案



空格是可修剪的。在Tomcat和克隆中,您需要做的就是将JspServlet的init参数trimSpaces设置为true



如果这是您最关心的问题,那么只需继续basic JSF implementation即可。它提供了您需要开始的所有内容,如果需要,可以在Tomahawk的帮助下获得更多增强的组件(例如,无表 radio /复选框)和缺少的组件(例如,文件上传和数据列表)。

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

也不要使用on*属性混合内联脚本。使用jQuery引入不引人注目的Javascript。至于来自JSF组件的自动生成的Javascript,在基本实现中,您只能在h:commandLink中获得它,而<a>本质上是h:commandButton元素,它会提交隐藏的POST表单。由于从语义/技术/SEO角度来看这是错误的,因此我完全不会使用它。只需使用h:outputLink提交表单,并使用<div>进行导航。

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



是的



不,您掌握了它。

关于html - JSF组件库生成可怕的html代码。不好,但是可以接受吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1881785/

10-12 12:26
查看更多