JSF2按钮和commandButton⽰例
在JSF 2.0中, <h:button />和<h:commandButton />标记都⽤于呈现button类型的HTML输⼊元素,并使⽤不同的机制来处理导航。
1. JSF h:commandButton⽰例
⾃从JSF 1.x以来,“ h:commandButton ”标记已发布,您可以声明bean,该bean在“ action ”属性中返回导航结果。 如果禁⽤了JavaScript的浏览器,则导航仍然有效,因为导航是通过表单发布处理的。
1.提交按钮
//JSF
<h:commandButton value="submit" type="submit" action="#{LoginPage}" />
//HTML output
<input type="submit" name="xxx" value="submit" />
2.重置按钮
//JSF
<h:commandButton value="reset" type="reset" />
//HTML output
<input type="reset" name="xxx" value="reset" />
3.普通按钮htmlbutton属性
//JSF
<h:commandButton value="button" type="button" />
//HTML output
<input type="button" name="xxx" value="button" />
4.带有onclick事件的普通按钮
//JSF
<h:commandButton value="Click Me" type="button" onclick="alert('h:commandButton');" />
//HTML output
<input type="button" name="xxx" value="Click Me" onclick="alert('h:commandButton');" />
2. JSF h:button⽰例
“ h:button ”是JSF 2.0中的⼀个新标记,您可以直接在“ result ”属性中声明导航结果,⽽⽆需调⽤Bean来返回上⾯的“ h:commandButton”之类的结果。 但是,如果禁⽤了JavaScript的浏览器,则导航将失败,因为“ h:button ”标签会⽣成⼀个“onclick”事件,以通过“ window.location.href”处理导航。 看例⼦:
1.正常按钮⽆结果
//JSF
<h:button value="buton" />
//HTML output
<input type="button"
onclick="window.location.href='/JavaServerFaces/faces/currentpage.xhtml; return false;"
value="buton" />
PS:如果省略了result属性,则当前页⾯URL将被视为结果。
2.带有结果的普通按钮
//JSF
<h:button value="buton" outcome="login" />
//HTML output
<input type="button"
onclick="window.location.href='/JavaServerFaces/faces/login.xhtml; return false;"
value="buton" />
3.带有JavaScript的普通按钮。
//JSF
<h:button value="Click Me" onclick="alert('h:button');" />
//HTML output
<input type="button"
onclick="alert('h:button');window.location.href='/JavaServerFaces/faces/page.xhtml;return false;"
value="Click Me" />
我的想法…
不太确定为什么JSF 2.0发布了这个“ h:button ”标签,JavaScript重定向不切实际,尤其是在禁⽤JavaScript的浏览器中。 最好的⽅法是将“ result ”属性集成到“ h:commandButton ”标签中,希望可以在将来的版本中完成。
下载源代码
下载它– (10KB)
参考
1.
2.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。