JSF+Renderizar campo a partir do bean

2 respostas
alves.Felipe

Ola…

Gostaria de saber se tem como,e como fazer, para eu dar um “reRender” em algum campo de dentro do meu m.bean.

obrigado

2 Respostas

surfzera

Pelo que entendi você quer dar reRender em um componente tipo comboBox etc… correto ? se você quiser fazer isso você poder utilizar o a4jsf, ou se for apenas para atualizar o valor do bean você pode utilizar o rerender apontando para o objeto.

Se eu tiver entendido errado coloque seu codigo para poder ajudar … fica mais facil a visualização do seu problema. obrigado

alves.Felipe

vou explicar a situação…
eu preciso fazer algumas validações qdo o cara digita o codigo do cliente… se o cliente for invalido,ou tiver pendencias financeiras, eu limpo o campo …certo??
até ai blz…
mas o problema que estou tento, é que estou usando o autocomplete…(rich:suggestionbox) e no meu a4j:support event=“onblur” eu tenho
que renderizar o idCliente…(por causa de qdo eu for limpar o campo)… ai qdo aparece as opções no autoComplete e eu clico em cima de alguma,
ele não esta preenchendo o campo idCliente com o id escolhido no autocomplete… entede??mas se eu escolher a opção pelas setas do teclado,funciona…
então eu queria saber como faz para renderizar o campo idCliente la no meu bean… pq se eu tirar o idCliente para renderizar vai tudo certo…

<h:inputText value="#{requestScope.pedidoPocket.cliente.id}"
		id="idCliente" required="true" 
		binding="#{pedidoController.inputCliente}"
		requiredMessage="O campo Cliente deve ser preenchido."
		converterMessage="Cliente é um campo numérico." >
	<f:convertNumber integerOnly="true" pattern="######" />
	<a4j:support event="onblur"	action="#{pedidoController.consultarRazaoSocialCliente}"
		reRender="razaoSocial,a4jItens,itemCodProduto,idCliente,suggestionboxCliente,a4jMessages" immediate="true">
	</a4j:support>
</h:inputText> 
<rich:suggestionbox
	id="suggestionboxCliente" 
	for="idCliente"
	suggestionAction="#{clienteController.complementoCliente}"
	var="campo" immediate="true" fetchValue="#{campo.id}"
	minChars="3" >
	<h:column>
	                <h:outputText value="#{campo.id}" />
	</h:column>
	<h:column>
		<h:outputText value="#{campo.razaoSocial}" />
	</h:column>
</rich:suggestionbox>

mb

/**
	 * Método responsável por controlar a consulta da razão social de um cliente
	 * e verificar se existe duplicatas em aberto e cheques devolvidos
	 */
	public void consultarRazaoSocialCliente()
	{
		HttpServletRequest request = getRequest();
		String codCliente = request.getParameter("Form:idCliente");
		try
		{
			if (codCliente != null && codCliente.trim().length() > 0 && codCliente.trim().length()<=10)
			{
				Integer id = Integer.parseInt(codCliente.trim());
				PedidoPocket pp = (PedidoPocket) request.getAttribute(Constantes.IPD_PEDIDO_POCKET.getDescricao());//new PedidoPocket();
				Cliente c = clienteDao.findById(id);
				
				if(c!=null)
				{
					boolean setar=true;
					if(clienteDao.findDuplicatasAbertoByCodCliente(c.getId())!=null)
					{
						FacesUtils.mensInfo(Constantes.IPD_MSG_DUPLICATA_ABERTO.getDescricao());
						setar=false;
					}
					if(clienteDao.findChequesDevolvidosByCodCliente(c.getId())!=null)
					{
						FacesUtils.mensInfo(Constantes.IPD_MSG_CHEQUE_DEVOLVIDO.getDescricao());
						setar=false;
					}
					if(setar)
						pp.setCliente(c);
					else
					{
						inputCliente.resetValue();
						pp.setCliente(null);
					}
				}
				else
				{
					FacesUtils.mensInfo(Constantes.IPD_MSG_CLIENTE_NAO_CADASTRADO.getDescricao());
					inputCliente.resetValue();
				}
			}
			else
			{
				FacesUtils.mensInfo(Constantes.IPD_MSG_CLIENTE_NAO_CADASTRADO.getDescricao());
				inputCliente.resetValue();
			}
		}
		catch (Exception e)
		{
			//inputCliente.resetValue();
			super.tratarExcecao(e, "consultarRazaoSocialCliente");
		}
		removerTodosProdutos();
	}

entedeu alguma coisa?? hehe

Criado 5 de março de 2009
Ultima resposta 5 de mar. de 2009
Respostas 2
Participantes 2