JSF Action vs Issue de l'Attribut
Je suis nouveau sur JSF et essaie de comprendre quelle est la différence entre l'action et le résultat d'attributs? Ce n'est pas la différence entre les boutons et les boutons de commande, mais entre le résultat vs action des attributs sur l' même bouton de la balise.
Par exemple, je peux avoir:
<h:button value="Go" outcome="<value>" />
ou
<h:button value="Go" action="<value>" />
Je ne suis pas sûr de quand utiliser l'un. Aussi, fait-il une différence si <value>
est <#{bean.methodThatReturnsStringInNavigationRule}>
ou <string literal in navigation rule>
?
Merci.
- Les boutons sont généralement utilisés pour la navigation, tandis que les boutons de commande sont généralement utilisés pour effectuer les actions commerciales (et, si nécessaire, de la navigation).
- Que par votre mise à jour, pas un composant JSF a deux attributs dans la même balise. Le
<h:button>
ne prend pas en chargeaction
attribut à tous. Leaction
attribut est pris en charge uniquement dans<h:commandButton>
. - Le titre de cette question, il est beaucoup plus facile à trouver maintenant. Je ne pense pas qu'il devrait être considéré comme duplciate plus.
Vous devez vous connecter pour publier un commentaire.
Différence est que, alors que action définit une méthode de serveur pour être exécuté, résultat spécifie un view-id qui sera la destination de votre page. Vous devez utiliser JSF entrées en fonction de l'objectif que vous essayez d'atteindre:
<h:button outcome="user-management">
cibles-vous à la page gestion des utilisateurs. Imaginez cela comme une sorte de lien.<h:commandButton action="#{backingBean.goToUserManagement}"
Si vous retournez "gestion des utilisateurs" dans votre méthode d'action, est en train de faire la même chose que le résultat mais il vous permet d'exécuter une logique dans le côté serveur. Il doit être intégré dans unh:form
tag.Aussi il n'y a pas de différence entre
<h:button outcome="user-management">
ou<h:button outcome="#{backingBean.userManagementNavigationResult}">
, autant que de votre côté serveur méthode de lecture renvoie "gestion des utilisateurs" de la valeur.<h:button>
peut être utilisé en dehors d'un<h:form>
, tandis que<h:commandButton>
ne le peuvent pas.<h:link>
.Si vous voyez JSF 2.0 de l'API n'est pas
action
attribut pour<h:button>
tag.<h:button>
est une nouvelle balise JSF 2.0. Vous pouvez déclaré la navigation résultat directement dans laoutcome
attribut, pas besoin d'appeler un haricot pour retourner un résultat, comme le<h:commandButton>
.Mais, si le navigateur avec JavaScript désactivé, la navigation échoué, parce que le “h:bouton” tag est de générer un “onclick” événement pour gérer la navigation via
window.location.href
.//Sortie HTML
Source : mkyong. Mon site préféré où vous pouvez trouver décent exemples.
Excellent Blog pour le JSF : BalusC. Un Héros pour beaucoup de gens sur ce forum:).