Página com Conteúdo Contínuo no JSF

2 respostas
C

É possível desenvolver uma lógica de página com conteúdo contínuo no JSF? Igual a busca de imagens do google, que no final aparece um botão Mais resultados e carrega logo abaixo.

Já tentei combinar o <ajax render… > com o <ui:include src=“resultado.xhtml” > mas só consigo substituir o conteúdo. Eu preciso carregar o resultado, mas manter o conteúdo anterior.

2 Respostas

CristianPalmaSola10
&lt;ui:repeat var="o" value="#{order.orderList}" varStatus="status"&gt;
 
	&lt;tr&gt;
		&lt;td&gt;#{o.orderNo}&lt;/td&gt;
		&lt;td&gt;#{o.productName}&lt;/td&gt;
		&lt;td&gt;#{o.price}&lt;/td&gt;
		&lt;td&gt;#{o.qty}&lt;/td&gt;
	&lt;/tr&gt;
 
   &lt;/ui:repeat&gt;

essa taglib acho que resolve sua vida, quando o usuario clicar no botao voce adiciona mais conteudo na lista e tendo um outputPanel por fora voce ta um update nele e de boa funcionando como vc quer |–|

C
CristianPalmaSola10:
&lt;ui:repeat var="o" value="#{order.orderList}" varStatus="status"&gt;
 
	&lt;tr&gt;
		&lt;td&gt;#{o.orderNo}&lt;/td&gt;
		&lt;td&gt;#{o.productName}&lt;/td&gt;
		&lt;td&gt;#{o.price}&lt;/td&gt;
		&lt;td&gt;#{o.qty}&lt;/td&gt;
	&lt;/tr&gt;
 
   &lt;/ui:repeat&gt;

essa taglib acho que resolve sua vida, quando o usuario clicar no botao voce adiciona mais conteudo na lista e tendo um outputPanel por fora voce ta um update nele e de boa funcionando como vc quer |--|

Cara eu fiz da seguinte forma:

index.xhtml
&lt;h:panelGroup id="resultado"&gt;
			&lt;ui:repeat var="item" value="#{app.itens}"&gt;
				&lt;div&gt;
					&lt;h:outputLabel value="#{item}" /&gt;
					&lt;h:outputLabel value="(#{app.hora})" /&gt;
				&lt;/div&gt;
			&lt;/ui:repeat&gt;
		&lt;/h:panelGroup&gt;

		&lt;div&gt;
			&lt;h:form&gt;
				&lt;h:commandButton id="maisResultados" value="Mais resultados" action="#{app.maisItens}"&gt;
					&lt;f:ajax render=":resultado" /&gt;
				&lt;/h:commandButton&gt;
			&lt;/h:form&gt;
		&lt;/div&gt;
controller
@ManagedBean(name = "app")
@ApplicationScoped
public class AppController {

	int r = 1;
	ArrayList&lt;String&gt; itens = new ArrayList&lt;String&gt;();
	
	public AppController() {
		maisItens();
	}
	
	public ArrayList&lt;String&gt; getItens() {
		return itens;
	}

	public void maisItens() {
		// aqui será processado o resultado...		
		for (int i = 0; i &lt; 2; i++) {
			itens.add(&quot;Item &quot; + Integer.toString(r++));			
		}
	}

	public String getHora() {
		Calendar cal = Calendar.getInstance();
		SimpleDateFormat sdf = new SimpleDateFormat(&quot;H:mm:ss:SSS&quot;);
		return sdf.format(cal.getTime());

	}
}

Mas todo o conteúdo é atualizado (Veja a hora). Eu preciso que retorne somente os novos resultados.

Neste caso os ítens estão sendo acumulados. O ideal era que nem fizesse isso, mas somente o novo resultado para que seja adicionado na view.

Criado 25 de junho de 2012
Ultima resposta 26 de jun. de 2012
Respostas 2
Participantes 2