如您所知,您可以使用 2 种方法在 HTML5 中呈现按钮:
- 使用 void 元素
<input type="button" />
或 - 如果您需要内容,请使用
<button></button>
元素(不是空元素)。
在JSF2中,有2种方式生成按钮;与UICommand
或 UIOutcomeTarget
成分。我了解这 2 个组件的用途,我的问题是对于 2 种 HTML5 按钮类型最好的组件是什么,应该在 JSF2 中创建这些 HTML5 组件吗?
到目前为止,最好的方面是创建一个 UICommand
和 UIOutcomeTarget
对于每个 HTML5 元素。
最佳答案
UICommand
组件应该用于 POST 按钮,如 <h:commandButton type="submit">
和 UIOutcomeTarget
组件应该用于 GET 按钮,如 <h:button>
.无效按钮在 JSF 中由 <h:commandButton type="button">
表示这本质上是 UICommand
, 但它什么也没做。
JSF2 没有任何生成 <button>
的组件.提到的组件生成一个 <input>
. PrimeFaces 的 <p:commandButton>
和 <p:button>
但是会生成一个完全值得的 <button>
(唯一的原因是它允许通过 CSS 更轻松地控制外观)。
如果您打算创建一个生成 <button>
的自定义组件并想在 UICommand
之间做出决定和 UIOutcomeTarget
,那么您应该根据按钮的所需 HTML 表示最终触发 POST 或 GET 请求。如果您的按钮应该同时支持两者,请选择 UICommand
.
另见:
与具体问题无关,这些按钮都不是特定于 HTML5 的。它们已经存在于以前的 HTML 版本中。
关于java - 在 JSF2 中呈现 HTML5 按钮(按钮、重置和提交),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842929/