【问题标题】:Jsf+Primefaces responsive designJsf+Primefaces 响应式设计
【发布时间】:2014-06-04 15:15:02
【问题描述】:

我已经开始为我的网站使用 JSF+Primefaces 最新版本,这是否有可能让我的设计响应这些技术。我不想使用 Primefaces 移动设备,或者我不想为相同的功能创建两个不同的页面

【问题讨论】:

  • primefaces.org/showcase 尝试使用台式电脑、平板电脑和手机检查新的 primefaces 展示(例如在 Chrome 中使用 Ripple)。它是“响应式”的,在所有设备上看起来都不错。 Tbh 没有测试它

标签: jsf primefaces responsive-design


【解决方案1】:

PrimeFaces 6.x 具有响应式设计更新,包括 Responsive Grid

网格不是 JSF 组件,它是一个带有 ui-grid 类的简单 div。

3列布局示例:

<div class="ui-grid">
   <div class="ui-grid-col-4">Col1</div>
   <div class="ui-grid-col-4">Col2</div>
   <div class="ui-grid-col-4">Col2</div>
 </div>

在实际情况下,只有一个网格并不能满足要求,因此您通常应该使用一些框架,例如 bootstrapfoundation

两个框架都提供 CSS/Javascript 规则,它们可以很容易地应用在 JSF 组件上,例如如果你有一个按钮:

<h:commandButton styleClass="btn" value="Button">
</h:commandButton>

btn 是一个引导 CSS 类。

您可能会遇到一些不接受此类样式的组件,例如 Primefaces 表格,在这些情况下您应该编写自己的 CSS media queries/Javascript 以保持响应能力。

查看更多

【讨论】:

  • 你不能直接使用div,因为这是一个纯HTML标签,不是JSF组件。相反,请考虑使用 JSF &lt;h:panelGroup styleClass="ui-grid" layout="block"&gt; 或 PrimeFaces p:panel。然后在这两种情况下,它将由各自的 JSF 引擎控制。像rendered="#{someELcode.bla()}" 这样的美好事物都是可能的。
  • 不,据我所知,您应该避免直接的 HTML 标签,因为它们不受 JSF 引擎的控制。特别是当涉及到&lt;form&gt; 而不是&lt;h:form&gt; 标记时,它不会在您的支持bean 中调用您的操作方法。同样使用&lt;input&gt; 而不是&lt;h:commandButton|Link&gt; 也不会触发它。使用 &lt;head&gt; 而不是 &lt;h:head&gt; 不会从您的 JSF 引擎加载任何 JavaScript(包括所有其他面孔)。
  • 这是我在训练中学到的。 :-) 我已经尝试过了,并且确实做到了,没有调用任何操作方法。好吧,对于&lt;div&gt;,据我所知,它最终会成为一些 JSF 标记的主体。
  • 这并不意味着您不能使用html,毕竟这些组件的所有最终输出都是HTML,您的观点是正确的,您需要从它们中获取输入或所以,但是为了有一个布局,最好使用 html 而不是在堆栈上有额外的组件,所以使用 div 和 span 等是一个很好的做法
猜你喜欢
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 2016-12-28
相关资源
最近更新 更多