Bom dia caros amigos do GUJ, tenho uma aplicação de protocolos( onde existem vários tipos de solicitações que podem ser feitas ), desenvolvida em JSF2, PRIMEFACES.
Estou com a seguinte situação: a qualquer momento o usário pode selecionar um tipo de solicitação em um combo e clicar em um botão OK que irá redirecionar para a tela do protocolo. Para cada tipo de solicitação, a tela pode conter algumas diferenciações.Para controle destas diferenciações eu uso o FACELETS.
Mas me deparei com cenário em que preciso carregar as páginas características de cada solicitação para a view central na posição característica do TEMPLATE(FACELETS) as diferenças, quando existirem é claro. Para isso eu estava pensando em usar o Pattern “Front Controler” onde eu teria uma chave que identifica cada solicitação e o nome da página que caracteriza a diferenciação(em termos de tela) daquela solicitação. Mas para isso eu teria de fazer o cadastro do nome da página e relacionar com a solicitação para conseguir preencher o HashMap. Isso gera uma dependência para o sistema, dependência do nome do arquivo que caracteriza a solicitação. Vocês saberiam me indicar uma solução melhor para este cenário? Um abraço e obrigado pela atenção.
Front Controller para redirecionamento de páginas
8 Respostas
A motivação do front controller na questão navegacional é tomar a decisão para qual view sera direcionada.
- Se vc for criar uma pagina estática para cada tipo, então se configura caso de front, dai vc aplica sim.
- Se vc for montar uma pagina dinâmica que vai aparecer/esconder os campos para cada tipo, dai não se aplica o front controller (não é o objetivo do padrão).
E ai?
Na minha situação eu tenho uma mescla das que você citou. O Facelets me dá a parte dinâmica da navegação, e nesse aspecto, dentro do meu template tenho um div em que carrego a página estática que corresponde á diferenciação daquela página de protocolo, em relação á página default. Note que chamarei o template central de protocolo e preciso decidir, o que conseguirei manipulando informações dentro do MBean controlador, se aquela página tem ou não uma diferenciação de tela para ser carregada. Em caso afirmativo o template deve carregar a página estática para caracterizar aquela solicitação. Essa página que eu precisaria tê-la relacionada com a solicitação e necessariamente o nome do arquivo que a caracteriza para o montar a página de protocolo referente áquela solicitação.
Sim…cada tipo tipo tem um pagina especifica que ainda pode ter variações de campo…
Na verdade vc pode fazer criar um managedBean “baseado” em front-controller, uma vez que padrão diz que tem q ser um serlvlet…mas vc não precisa fazer um servlet…
Manda ver !
Mas eu queria fazer isso sem ter que gravar no bd o nome do arquivo que carateriza uma “página diferenciada” de solicitações.
Tem alguma idéia sobre?
Mas eu queria fazer isso sem ter que gravar no bd o nome do arquivo que carateriza uma “página diferenciada” de solicitações.
Tem alguma idéia sobre?
Soft-code - txt, xml, properties etc…
Na verdade eu não queria ter essa informação persistida em local algum, queria um modo mais automático de redirecionar sem ter que usar relação entre solicitação e nome de arquivo.
Vc pode usar Strategy [GOF] e colocar as regras polimórficas em cada variação “estratégica” de decisão.
Considerando que de aproximadamente 108 solicitações, apenas uns 30% devem ter diferenciações, Strategy deve me ser útil e bastante, apesar de eu também ter hard code( nome do arquivo que diferencia a página ) para o redirecionamento. Gostei da sugestão meu amigo, obrigado pela atenção, vou adotar.