谁能用自己的话解释一下h:form是如何工作的,它有什么好处?我是JSF的新手,我注意到一些奇怪的行为。假设我有一个按钮,它将我重定向到主页,像这样:
h:commandButton value="back" action="home? "faces-redirect = true "
当我不把这个按钮包装到h:form标签按钮根本不起作用…h:在幕后究竟形成了什么?我读过官方文档,但我觉得我不知道它是如何工作的…
谢谢
它将<form />
HTML标记放入渲染结果(纯HTML发送到客户端)。这样做的好处是<h:form />
中的所有元素都可以使用POST(或最终的GET)请求向服务器发送信息。
<h:commandButton />
使用这种请求,所以它只在<h:form />
中工作。其他表单元素如<h:inputText />
等也是如此。这些元素需要包含在<h:form />
中,这样用户输入的信息才能发送到服务器并进行处理。
同样,其他一些似乎不是表单元素的组件也需要使用<h:form />
,因为它们向服务器发送信息。这种组件的一个例子可能是PrimeFaces (JSF的扩展库)数据表(<p:dataTable />
)。