草庐IT

html - JSF 组件库生成糟糕的 html 代码。这不好,但可以接受吗?

coder 2023-08-09 原文

当我使用 jsp/jSTL 和 jQuery 开发网络应用程序时,我曾经编写过漂亮的 html 代码,与样式和脚本分开。 JSP 插入了一些奇怪的空格和空行,但没有别的。

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

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

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

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

那么,问题是:它是否是一种新的网络开发标准 - 创建快速而肮脏的 html?

最佳答案

JSP inserted some odd spaces and blank lines but nothing else.

那个空白是可以修剪的。在 Tomcat 和克隆中,您需要做的就是设置 JspServlet的初始化参数 trimSpacestrue .

But all libs I've already tried generate awful html mixed with scripts mixed with some additional hidden inputs and styling inside html. These libs also often offer table layout (with different Panel, GridPanel and other components).

如果这是您最关心的问题,那么请继续 basic JSF implementation .它提供了您开始所需的一切,如有必要,可借助 Tomahawk 的帮助对于更多增强组件(例如无表 radio /复选框)和缺少的组件(例如文件上传和数据列表)。

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

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

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

I don't know exactly but I think that ASP.NET generates something similar.

确实如此。

So, the question: is it a new standard of web-development - creating fast and dirty html?

不,它在你手中。

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

有关html - JSF 组件库生成糟糕的 html 代码。这不好,但可以接受吗?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  3. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  4. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  5. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  6. ruby - 我可以使用 Ruby 从 CSV 中删除列吗? - 2

    查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html

  7. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  8. ruby - 我可以使用 aws-sdk-ruby 在 AWS S3 上使用事务性文件删除/上传吗? - 2

    我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的

  9. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  10. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

随机推荐