Desenvolvimento ágil de interfaces web

7 respostas
prog.tiago

Amigos, uma dúvida:

Tenho uma aplicação à fazer, e estou utilizando JSF.

A aplicação consiste numa sequência de CRUDs, com tudo que tem direito. Terei na janela principal de cada CRUD, uma tabela com os dados dos objetos existentes, um botão novo, excluir e editar. Os botões novo e editar abrem um dialog ou em branco (novo) ou preenchido para edição (editar), e o botão excluir, pede confirmação de exclusão. Coisa simples, mas que dá trabalho pela quantidade de janelas iguais. Isso é chato! hehe

Deve haver, embora eu não conheça, alguma forma de reutilizar por exemplo a janela de edição. Hoje eu estou utilizando forms dentro do meu .xhtml.

No cadastro de alunos eu tenho um form_principal, um form_edicao, um form_novo. No cadastro de professores eu tenho os mesmos forms, então eu copio, colo, e altero os campos e atributos. Tem um jeito de desacoplar esses forms de forma eficiente e produtiva?

Como vocês fazem?

Abraços

7 Respostas

igor_ks

Não compensa fazer um form para todos seus cadastros. A manutencão disso depois vai dar muito mais trabalho.

Faça um form para cada cadastro mesmo, mas tenha um form padrao, onde terá todas as coisas em comuns (botoes, etc)
Depois só da os imports no template.

prog.tiago

Não compensa fazer um form para todos seus cadastros. A manutencão disso depois vai dar muito mais trabalho.

Faça um form para cada cadastro mesmo, mas tenha um form padrao, onde terá todas as coisas em comuns (botoes, etc)
Depois só da os imports no template.

Hum, como eu imaginei… Você tem algum exemplo? Se tiver, agradeço.

igor_ks

não tenho :frowning:

Mas vai fazendo conforme a necessidade…
Voce sabe que botoes de novo,editar,excluir terão.
Uma telinha de busca com filtros e um gridzinho terá…

entao vai fazendo baseado nessas coisas

prog.tiago

Que legal Igor, valeu.

Acho que isso vai me ajudar muito.

Tipo, é só criar um form, como eu sempre faço, num arquivo .xhtml à parto, e depois importá-lo quando eu form usar?

S

Estou começando a usar java mas acredito que se voce usar herança será mais produtivo.

prog.tiago
Estou começando a usar java mas acredito que se voce usar herança será mais produtivo.

Lembro que com Flex e AS eu conseguia criar uma classe que herdava de um componente ActionScript e o alterava à meu gosto. Com JSF dá para fazer isso também?

prog.tiago

Bom dia amigos,

Olha eu de novo. :lol:

Vejam o que eu fiz:

Criei meu componente que é uma Dialog

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	xmlns:ui="http://java.sun.com/jsf/facelets">
	
<ui:component>
	<h:form>
		<p:dialog appendToBody="true" widgetVar="novoComponente" >
			<h:inputText id="#{id}" value="#{value}" required="true"
				requiredMessage="Este campo obrigatório" />
			<h:message for="#{id}" />
			<h:commandButton value="Enviar" />
		</p:dialog>
	</h:form>
</ui:component>
</html>

Criei um arquivo xml para declará-lo

<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "https://facelets.dev.java.net/source/browse/*checkout*/facelets/src/etc/facelet-taglib_1_0.dtd">
<facelet-taglib>
    <namespace>http://prog.tiago.com.br</namespace>
    <tag>
        <tag-name>novoPartidoFormX</tag-name>
        <source>novoPartido.xhtml</source>
    </tag>
</facelet-taglib>

O utilizei no meu xhtml principal

<?xml version="1.0"  encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui"
	xmlns:prog="http://prog.tiago.com.br"
	template="/WEB-INF/templates/default.xhtml">


	<ui:define name="conteudo">
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

		<h:form id="formPrincipal">
                        <prog:novoComponente id="novoComponente"  />
			<p:commandButton value="testar componente criado"  update="formPrincipal" />
		</h:form>
	</ui:define>
</ui:composition>

O problema é que quando clico no botão criado acima, o componente criado não abre. O que está errado?

Abraços. :D

Criado 7 de maio de 2012
Ultima resposta 16 de mai. de 2012
Respostas 7
Participantes 3