Pessoal,
Eu tenho um form, com campos inputText para alguns atributos String . Quando eu clico no commandLink para enviar, os inputText que não foram preenchidos preenchem os atributos com “” .
Tem alguma forma de fazer eles atribuírem null ao invés de “” ?
Caso contrario, eu tenho sempre que fazer no bean:
if (getAtributo1.equals("")) {setAtributo1(null);}
Valew pessoal!!!
Flin
Fevereiro 7, 2008, 11:32am
#2
Ou teu código mesmo checa se a string ta vazia, ou você pode fazer um converter (ou converter-for-class) que já trata isso.
Mas eu crio um converter para a classe string? pois os atributos são string.
Flin
Fevereiro 7, 2008, 11:44am
#4
Pessoalmente eu nunca fiz um converter pra String pra ver se da alguma merda :), mas vale a pena tentar hehehe
Bom pessoal, aqui está a minha solução para referencia futura:
Eu criei um converter para Strings
[code]public class StringToNullConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if ((value==null) || (value.equals(""))) {
return null;
}
return value;
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value==null) {
return "";
}
return value.toString();
}
}
[/code]
Ai eu declaro ele com um id:
<converter>
<converter-id>stringToNullConverter</converter-id>
<converter-class>br.teste.StringToNullConverter</converter-class>
</converter>
E depois eu uso nos meus campos inputText, etc…
<h:inputText id="descricao" value="#{meuBean.descricao}" maxlength="50" label="#{msgsadmpart.campoDescricao}" style="width:340px;">
<f:converter converterId="stringToNullConverter"/>
</h:inputText>
Até mais pessoal…