Lier h:selectBooleanCheckbox valeur int/Integer au lieu de boolean/Boolean
J'ai un <h:selectBooleanCheckbox value="#{someBean.prop}">
où prop
est une propriété de type int
. Est-il vraiment pas de travail tout de suite? Dois-je mettre en œuvre un convertisseur personnalisé pour convertir Boolean
à int
? Quelqu'un arrive d'avoir convertisseur de code en rupture de stock? J'ai lu qu'il y a certains bug dans JSF 2.0 qui empêche les convertisseurs pour <h:selectBooleanCheckbox>
pour être traitées. Quelqu'un peut confirmer?
- Je utiliser MyFaces 2, Tomahawk et Tomcat 6.
OriginalL'auteur geeehhdaa | 2011-04-18
Vous devez vous connecter pour publier un commentaire.
La
<h:selectBooleanCheckbox>
devrait, comme son nom le dire, être lié à unboolean
ouBoolean
de la propriété. Rien d'autre. Qu'il permet à unconverter
attribut est en fait un bug dans la spec. Il n'aurait jamais permis.Le problème est plus dans votre modèle, pourquoi voudriez-vous utiliser un
int
pour représenter une valeur booléenne de l'état? Changer de modèle de laisser être un fullworthyboolean
.Si le changement du modèle n'est pas une option pour une raison quelconque (une 3ème partie de l'API, un stupide architecte, ou stupide d'affaires restrictions, etc), puis les envelopper le modèle de getter/setter dans le backing bean comme suit
et l'utiliser comme
<h:selectBooleanCheckbox value="#{bean.checked}" />
.Pourrait être considéré comme un spam, mais Balus je vous aime. J'ai eu le même problème et a fourni un convertisseur personnalisé, ce qui n'est pas déclenché. Me sauve des tonnes de temps. Merci!
vous êtes plus que les bienvenus, mais désolé, je suis déjà marié.
Comment fausser deux valeurs?
OriginalL'auteur BalusC
juste pour dire que MySQL n'a pas de booléen comme type de champ de choix, et il pourrait être un exemple pour ce besoin.
model.setSomeBoolean(resultSet.getInt(columnname) != 0)
et ainsi de suite. Si JPA une un mappage personnalisé peut être créé.OriginalL'auteur Eduardo