Définit la valeur au cours du modèle de mise à jour des valeurs de phase (puisqu'il s'étend UIInput
).
La valeur définie n'est pas disponible pendant l' @PostConstruct
, de sorte que vous besoin d'un supplément de <f:event type="preRenderView" listener="#{bean.init}" />
à l'intérieur de l' <f:metadata>
faire initialisation/préchargement basée sur l'ensemble des valeurs. Depuis JSF 2.2 vous pouvez utiliser <f:viewAction>
à la place.
Permet imbriquée <f:converter>
et <f:validator>
pour les plus fines de conversion et de validation. Même un <h:message>
peut être fixé.
Peut être inclus en tant que chaîne de requête GET à l'aide de includeViewParams
attribut de l' <h:link>
ou includeViewParams=true
paramètre de la requête dans l'URL.
Peut être utilisé sur un @RequestScoped
haricot, mais il exige de la fève à être @ViewScoped
si vous souhaitez que l'affichage des paramètres de survivre à toute validation de défaillances causées par des formes enfermé dans la vue, sinon, vous devez manuellement conserver tous les paramètres de la demande pour les demandes suivantes en <f:param>
à la commande des composants.
Exemple:
<f:metadata>
<f:viewParam id="user_id" name="id" value="#{bean.user}"
required="true" requiredMessage="Invalid page access. Please use a link from within the system."
converter="userConverter" converterMessage="Unknown user ID."
/>
</f:metadata>
<h:message for="user_id" />
avec
private User user;
et un @FacesConverter("userConverter")
. Invoquant la page par http://example.com/context/user.xhtml?id=123 va passer l' id
paramètre par le biais du convertisseur et de l'ensemble de l' User
objet comme un haricot de la propriété.
Définit la valeur immédiatement après l'haricot de construction.
La valeur de consigne est disponible pendant l' @PostConstruct
qui permet l'initialisation/préchargement d'autres propriétés sur la base de la valeur de consigne.
N'autorise pas pour déclaratif de conversion/de validation en vue.
Propriété de gestion d' #{param}
n'est pas autorisée sur les haricots avec une portée plus large que la demande de la portée, de sorte que le haricot est nécessaire pour être @RequestScoped
.
Si vous vous fiez à une propriété gérée de #{param}
d'être présent dans le billet suivant les demandes, alors vous avez besoin de l'inclure en tant que <f:param>
dans la UICommand
composants.
Exemple:
@ManagedProperty("#{param.id}")
private Long id;
private User user;
@EJB
private UserService userService;
@PostConstruct
public void init() {
user = userService.find(id);
}
Mais, vous avez à gérer la validation de vous-même chaque fois qu' user
est null
par se tripoter FacesContext#addMessage()
ou quelque chose.
Vous pouvez les utiliser à la fois lorsque les deux @PostConstruct
et includeViewParams
sont obligatoires. Vous ne serez pas en mesure d'appliquer fine de conversion et de validation plus.
Voir aussi: