JSF Action vs Outcome Attribute

前端 未结 2 1324
悲&欢浪女
悲&欢浪女 2020-12-17 01:41

I\'m new to JSF and am trying to understand what the difference is between the action vs the outcome attributes? This is not the difference between buttons and command butt

相关标签:
2条回答
  • 2020-12-17 02:10

    Difference is that while action defines a server method to be executed, outcome specifies a view-id which will be destination of your page. You must use JSF inputs depending on the goal you're trying to achieve:

    • <h:button outcome="user-management"> targets you to the user management page. Imagine it as kind of link.
    • <h:commandButton action="#{backingBean.goToUserManagement}" If you return "user-management" in your action method, is doing the same as the outcome but it allows you to execute some logic into the server side. It must be embedded into a h:form tag.

    Also there's no difference between <h:button outcome="user-management"> or <h:button outcome="#{backingBean.userManagementNavigationResult}">, as far as your server side getter method returns "user-management" value.

    0 讨论(0)
  • 2020-12-17 02:23

    If you see JSF 2.0 API there is no action attribute for <h:button> tag. <h:button> is a new tag in JSF 2.0. You can declared the navigation outcome directly in the outcome attribute, no need to call a bean to return an outcome like <h:commandButton>.

    But, if browser’s with JavaScript disabled, the navigation will failed, because the “h:button” tag is generate an “onclick” event to handle the navigation via window.location.href.

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

    //HTML output

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

    Source : mkyong. My favorite website where you can find decent examples.

    Excellent Blog for JSF : BalusC. A Hero to so many people on this forum:).

    0 讨论(0)
提交回复
热议问题