Problemas em navegação no jsf

4 respostas
Regis_A_Rocha

ea galera to com um probleminha no aqui no jsf

tenho uma table com alguns dados. a ultima coluna dessa table tem um link alterar pelo qual iria direcionar para um jsp com os dados a serem alteradosm, mas estou tendo problemas nessa hora, pois quando clico no botao nao acontece nada.

irei postar os codigos
MB

public String alterarContatoTable(ActionEvent event) {
		UIComponent link = event.getComponent();
		UIParameter param = (UIParameter) link.findComponent("editId");
		Long id = (Long) param.getValue();

		Session session = HibernateUtil.currentSession();
		GenericHibernateDao<Contatos, Serializable> dao = new GenericHibernateDao<Contatos, Serializable>(
				session, Contatos.class);

		contatos = dao.load(id);

		return "alterar";
	}

xml

<navigation-rule>
		<from-view-id>contatos/lista_contatos.jsp</from-view-id>
		<navigation-case>
			<from-outcome>alterar</from-outcome>
			<to-view-id>contatos/adiciona_contato.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>

jsp

<h:column>
						<f:facet name="header">
							<h:outputText value="Alterar"/>
						</f:facet>
						<h:commandLink  action="alterar" actionListener="#{contatosController.alterarContatoTable}">
							<h:outputText value="Alterar"/>
							<f:param id="editId" name="id" value="#{c.id}"/>
						</h:commandLink>
					</h:column>

4 Respostas

mario.fts

cara, eu já tive vários problemas em usar um commandlonk dentro de uma tabela, pq o maldito jsf muda os ids do button quando ele ta montando a tabela e ele para de responder aos eventos.

tem gente que resolve colocando o bean como escopo de sessão, tem gente que muda implementação pra um q não tenha esse bug, sei lá. cada caso é um caso.

aqui tem algumas soluções: http://javafree.uol.com.br/viewtopic.jbb?t=853086

[]'s

Regis_A_Rocha

deu pra entender o motivo desse erro.

o meu bean ja esta com escopo session

e nao entendi direito onde eu colocaria essa anotação @DataModel[/Selection/Index] ?
seria em cima do metodo que pega o id e faz a pesquisa?

G

so troque o commandlink por commandbutton q o erro n deve persistir

JonathanSSantos

inves de tu passa como parametro um bean… seta um atributo do tipo do bean que tu quer passar do teu managedBean e passa o teu bean inteiro!
E dai qdo for trabalhar… no managedBean que tu setou ele tu trabalhar com aquele atributo! Bem mais pratico e nao precisa se nao me engano jogar na sessao teu managedBean… :smiley: :smiley:

Criado 19 de dezembro de 2009
Ultima resposta 21 de dez. de 2009
Respostas 4
Participantes 4