jsf2-jsf操作与结果属性



我是JSF的新手,正在努力理解动作属性和结果属性之间的区别是什么?这不是按钮和命令按钮之间的区别,而是相同按钮标签上的结果与操作属性之间的区别。

例如,我可以有:

<h:button value="Go" outcome="<value>" />

<h:button value="Go" action="<value>" />

我不知道什么时候该用哪一个。此外,如果<value><#{bean.methodThatReturnsStringInNavigationRule}>还是<string literal in navigation rule>,会有区别吗?

谢谢。

不同之处在于,操作定义了要执行的服务器方法,而结果指定了一个视图id,该id将成为页面的目标。您必须使用JSF输入,这取决于您试图实现的目标:

  • <h:button outcome="user-management">将您定位到用户管理页面。把它想象成一种链接
  • <h:commandButton action="#{backingBean.goToUserManagement}"如果您在操作方法中返回"用户管理",则执行与结果相同的操作,但它允许您在服务器端执行一些逻辑。它必须嵌入到h:form标记中

此外,就服务器端getter方法返回"用户管理"值而言,<h:button outcome="user-management"><h:button outcome="#{backingBean.userManagementNavigationResult}">之间没有区别。

如果看到JSF2.0 API,则<h:button>标记没有action属性。<h:button>是JSF 2.0中的一个新标签。您可以直接在outcome属性中声明导航结果,而无需调用bean来返回类似<h:commandButton>的结果。

但是,如果浏览器禁用了JavaScript,导航将失败,因为"h:button"标记将生成一个"onclick"事件来通过window.location.href处理导航。

<h:button value="buton" outcome="login" />          

//HTML输出

<input type="button" 
       onclick="window.location.href='/ContextRoot/faces/login.xhtml; return false;" 
       value="buton" />

资料来源:mkyong。我最喜欢的网站,在那里你可以找到不错的例子。

JSF的优秀博客:BalusC。这个论坛上很多人心目中的英雄:)。

相关内容

  • 没有找到相关文章

最新更新