Existe alguma outra ferramenta camada de apresentação fortemente integrada para além JSF / JSP para Java EE?

StackOverflow https://stackoverflow.com/questions/296325

Pergunta

Eu estou ensinando Java EE na universidade, e esta foi uma pergunta feita um estudante. Eu disse "não", mas eu não estava realmente certo, então eu pensei que eu poderia pedir-lhe desenvolvedores poderosos. :)

Basicamente, o que eu gostaria de fazer é usar entidades se estivessem no meu contexto: getters gato, setters, etc, assim como POJOs normais. se eu usar um EJB usando sua inferface remoto, as entidades fica desacoplada da infra-estrutura central, de modo que é uma-go não.

Eu pensei em escrever uma camada como este em minha tese de mestrado. Se é uma ideia morta, fique à vontade para me dizer. Se não for, diga-me se você gostaria de um.

Ou se é que existe tal ferramenta para fora lá, me avise!

Foi útil?

Solução

Em um mundo moderno aplicação básica Java EE, ela é dividida em várias camadas, onde você tem 4 camadas básicas

+--------------------+
|   Presentation     |
+--------------------+
| Controller/Actions |
+--------------------+
| Business Delegate  |
|     (Service)      |
+--------------------+
|  Data Access Layer |
+--------------------+
|      Database      |
+--------------------+

Os aplicativos deve ser dividido em estes camada desde o início, de modo que você pode, em qualquer ponto do tempo substituir qualquer camada sem afetar qualquer disto camada irmão.

Exemplo, se você usou JDBC para a camada de acesso a dados, você deve ser capaz de substituí-lo com Hibernate sem afetar o delegado negócios ou camada de banco de dados. A vantagem de usar uma arquitetura tal é permitir colaboração com múltiplas tecnologias. Você delegado de negócios (camada de serviço) deve ser capaz de falar com um serviço web e lidar com o processamento de aplicativos, mesmo sem ir a um browser!

No que diz respeito usando JSP como a camada de apresentação, existem outras tecnologias disponíveis, como, velocidade , freemarker , como iberck mencionado acima, tapeçaria também tem o seu próprio motor de renderização. Você pode usar XML + XSLT também para tornar a interface do usuário. Há UI aplicativos gestão também disponíveis como Tiles e sitemesh , que ajudam a integrar vários técnicos como diferentes componentes da página e mostrar-lhes como um.

Você também pode usar componentes swing peso leve batido com JNLP e desenvolver um aplicativo corporativo estilo desktop. Todos necessidade que é um pouco de imaginação e exigência do cliente e podemos usar literalmente qualquer coisa como a camada de apresentação.

Outras dicas

Eu nunca tentei, mas JSF é suposto para trabalhar melhor com Facelets do que com JSP.

A IBM tem um artigo sobre isso.

Ah. Parece que você não obter a minha pergunta certa:)

O feijão é lá para fornecer serviços dentro de um aplicativo. Vamos dizer que eu gostaria de desenvolver um aplicativo independente java com um gui swing, e a partir dessa aplicação Eu gostaria de usar as entidades presentes no escopo do Java EE do aplicativo.

Isso é o que eu gostaria de, de forma transparente: criar entidades, modificá-los, excluí-los de uma forma intuitiva, sem se preocupar com problemas EntityManager-destacamento (se você chamar um EJB remotamente e passa de volta um objeto de entidade, ele será destacada antes do retorno).

Eu não quero desenvolver uma aplicação web. JSF / JSP e tal é fortemente integrada, mas em muitos ambientes uma aplicação cliente independente seria melhor. :)

Ao ver o seu comentário no meio, eu ver que você quer uma estrutura de desktop mais de Java EE.

A resposta aqui é que JSF trabalha sobre a api servlet. E é definitivamente para a web, mas espera, você ainda pode incorporar tomcat ou ponte-cais em sua aplicação!

As possibilidades são praticamente infinitas, se a sua camada de negócios é bem definido, apenas construir uma camada de balanço que chama suas funções de negócios.

Além disso, Java EE é uma API, algumas peças podem ser substituídas, ou você pode simplesmente usar parte dela. O recipiente é principalmente para lidar com EJB, Servlets JNDI e outras pequenas coisas. Tudo isso pode ser usado por aplicativos de desktop também.

Portanto, a resposta depende do seu objetivo específico e o real concepção / implementação da aplicação.

Uma alternativa é Spring Framework. Spring fornece o seu próprio suporte para ligação de objetos de entidade para a vista e alças a obter / definir para você uma vez que é com fio para cima. Existem muitos módulos de Primavera para escolher e escolher. Spring MVC e Spring Webflow são ambos vale a pena conferir. Spring MVC (IMO) é mais simples para começar com, mas Sring Webflow permite uma navegação mais complexa e mais opções de escopo (ex: escopo fluxo). Se você está procurando um livro Primavera In Action é descida. Existem alguns conceitos que você terá de enfrentar (como injeção de dependência), a fim de usar o Spring mas vale bem a pena o tempo.

Outra alternativa é Tapestry5 quadro . Tapeçaria é um framework open-source para a criação de dinâmicas e robustas aplicações web, altamente escaláveis ??em Java. complementos de tapeçaria e se baseia no padrão API Java Servlet, e por isso funciona em qualquer servidor de contêiner servlet ou aplicação.

Tapestry divide uma aplicação web em um conjunto de páginas, cada um construído a partir de componentes. Isso fornece uma estrutura consistente, permitindo que o quadro Tapestry para assumir a responsabilidade por questões-chave, tais como a construção URL e expedição, armazenamento de estado persistente no cliente ou no servidor, validação de entrada do usuário, localização / internacionalização, e relatórios de exceção. Desenvolvimento de aplicações de tapeçaria envolve a criação de templates HTML usando HTML simples, e combinando os modelos com pequenas quantidades de código Java. Na tapeçaria, você cria seu aplicativo em termos de objetos e os métodos e as propriedades desses objetos - e, especificamente, não em termos de URLs e parâmetros de consulta. Tapestry traz desenvolvimento orientado a objeto verdadeiro para aplicações web em Java.

A ideologia por trás feijão é hoje em dia em qualquer quadro adequado Java eu ??saiba. Tão rico mencionado, Primavera é a / grande estrutura boa all-around lógica de negócios (confira sua jdbc modelo aulas, esses são simplesmente incrível - outro grande jóia é applicationContext.xml que é) e para a camada de vista I pessoalmente preferência Apache Wicket .

Eu não acredito que você deve fazer o seu próprio, mas sim encontrar uma estrutura que se adapte às suas necessidades e começar a contribuir para a sua base de código, de que maneira você tem que começar com uma base de usuários já formadas e seu código vai ser autor de mais minuciosamente que por sua vez vai fazer você um programador melhor.

grails ( http://www.grails.org/ ) ou Griffon ( http://griffon.codehaus.org/ ) pode ser de interesse

StringTemplate é escrito por Terrence Parr, o cara por trás ANTLR. Se você estiver interessado em gerar algum tipo de apresentação textual de um modelo, isso é muito bom.

Eu tive excelentes resultados de usá-lo para gerar XML, páginas da web e dot arquivos do mesmo modelo. Você escreve um modelo para tornar um objeto. Esse modelo pode chamar outros modelos (incluindo de forma recursiva), com base nos dados derivado do modelo. (Qv funções de imagem )

Getters e map.get() podem ser chamados diretamente de dentro dos templates. O modelo pode ser qualquer POJO. ST se orgulha de sua estrita separação do controlador, de forma muito pouco de lógica é permitida nos próprios modelos.

Tal como acontece com todas essas pequenas línguas, é algo novo para aprender, e pode não ser o que você está procurando. Foi realmente um bom ajuste para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top