Rich:editor

6 respostas
Thamila

Olá pessoal estou usando esse novo componente do RichFaces, qnd eu salvo eu limpo a campo, porém qnd eu tento salvar o que foi escrito após limpar não é “capturado” ou seja , é como se não atualizasse, não sei se por ser novo deve estar bugado, ou se falta eu fazer algo, abaixo o código.ControlaAjuda é minha bean e texto é String.

<rich:editor id=“texto” theme=“advanced” height=“300” width=“400” value="#{controlaAjuda.texto}"
valueChangeListener="#{controlaAjuda.alteraTexto}">
</rich:editor>

6 Respostas

Guilherme_Gomes

Ta muito confuso. Explica melhor o que esta acontecendo, posta o metodo alteraTexto e mostra a declaração do seu ManagedBean.

Thamila

É o seguinte, na primeira vez que o usuario escreve o texto e pede pra salvar este é “capturado” normalmente e salvo, em seguida eu limpo o texto:

texto="";

Quando o usuário vai digidar outro texto ( ou seja, pela segunda vez) e pede pra salvar, o texto escrito por ele não é “capturado”, logo a variável texto continua vazia.É como se não atualizasse.

public void alteraTexto(ValueChangeEvent event) {
this.texto = (String) event.getNewValue();

}

Declaração do ManagedBean

controlaAjuda
sismec.geral.controle.ControlaAjuda
request

brunolmfg

Também tive um problema semelhante. Com <h:form> tudo funciona como esperado, contudo, ao usar a4j:form começam os problemas.

A solução que encontrei foi ativar o atributo “immediate” e um “valueChangeListener”:

<rich:editor value="#{editor.value}" immediate="true" valueChangeListener="#{editor.applyValueChanged}"/>

E no valueChangeListener atualizo o valor vinculado ao atributo “value”:

public class Editor {
	public void applyValueChanged(ValueChangeEvent event) {
		FacesContext context = FacesContext.getCurrentInstance();
		event.getComponent().getValueExpression("value").setValue(
				context.getELContext(), event.getNewValue());
	}
}

Observe que usei a ValueExpression para atribuir o novo valor, deixando o método reutilizável. Assim, pode criar um ManagedBean com este método e utilizá-lo em todas as suas páginas.

Sei que é uma marretada até elegante, porém continuo procurando a real solução para este problema. :slight_smile:

Espero ter te ajudado.

jeanbr07

Tô com um problema semelhante, porém é com campos de textos comuns h:inputeText , quando eu salvo o registro, o mesmo passa para o bean o valor digitado, porém quando este já foi salvo e tento edita-lo, ele não atualiza o atributo do bean!

Thamila

Bruno o meu problema era que depois que eu salvava a primeira vez (na primeira tudo ocorria normal) ele não setava o texto, então foi descoberto que era o modal que exibia msg de que os dados foram salvos com sucesso…dai eu fiz assim no botão ok: coloquei um form e comentei o rich:componentControl, como mostra abaixo, mesmo assim obg :wink:

<a>a4j:form</a>

<h:commandButton id=“botaoOK” value=“OK” >

<%-- <rich:componentControl  for=panelFimOperacao attachTo=botaoOK operation=hide event=onclick /> --%>

</h:commandButton>

</a4j:form>

Jean acho que o seu prob se resolve com “valueChangeListener”.

Thamila

Ou então Jean vc pode fazer assim:

<h:inputText id=“nameField” value="#{bean.obj.nome}"
required=“true” size=“50”>
<a4j:support event=“onkeyup” ajaxSingle=“true”/>
</h:inputText>

Criado 26 de fevereiro de 2009
Ultima resposta 7 de out. de 2009
Respostas 6
Participantes 4