除了JSF/JSP for JavaEE之外,还有其他强集成的表示层工具吗?

除了JSF/JSP for JavaEE之外,还有其他强集成的表示层工具吗?,java,jakarta-ee,presentation-layer,Java,Jakarta Ee,Presentation Layer,我在大学教JavaEE,这是一个学生问的问题。我说不,但我不是很确定,所以我想我可能会问你们 基本上,我想做的是在我的上下文中使用实体:cat getter、setter等,就像普通的pojo一样。如果我使用一个使用远程接口的EJB,那么这些实体将与核心基础设施分离,因此这是不可能的 我想在我的硕士论文中写一个这样的层次。如果这是一个死主意,请告诉我。如果不是,告诉我你是否想要一个 或者如果有这样的工具,让我知道 一种选择是。Spring为将实体对象绑定到视图提供了自己的支持,并在连接后为您处理

我在大学教JavaEE,这是一个学生问的问题。我说不,但我不是很确定,所以我想我可能会问你们

基本上,我想做的是在我的上下文中使用实体:cat getter、setter等,就像普通的pojo一样。如果我使用一个使用远程接口的EJB,那么这些实体将与核心基础设施分离,因此这是不可能的

我想在我的硕士论文中写一个这样的层次。如果这是一个死主意,请告诉我。如果不是,告诉我你是否想要一个

或者如果有这样的工具,让我知道

一种选择是。Spring为将实体对象绑定到视图提供了自己的支持,并在连接后为您处理获取/设置。有许多Spring模块可供选择。SpringMVC和SpringWebFlow都值得一看。Spring MVC IMO入门更简单,但Sring Webflow允许更复杂的导航和更多范围选项,例如:flow scope。如果你在找一本书,那就是下降。为了使用Spring,您需要处理一些概念,例如依赖项注入,但这是非常值得的。Spring为将实体对象绑定到视图提供了自己的支持,并在连接后为您处理获取/设置。有许多Spring模块可供选择。SpringMVC和SpringWebFlow都值得一看。Spring MVC IMO入门更简单,但Sring Webflow允许更复杂的导航和更多范围选项,例如:flow scope。如果你在找一本书,那就是下降。为了使用Spring,您需要处理一些概念,例如依赖项注入,但这是值得的。

另一种选择是框架。 Tapestry是一个开源框架,用于在Java中创建动态、健壮、高度可伸缩的web应用程序。Tapestry是对标准JavaServletAPI的补充和构建,因此它可以在任何Servlet容器或应用服务器中工作

Tapestry将web应用程序划分为一组页面,每个页面由组件构成。这提供了一个一致的结构,允许Tapestry框架负责关键问题,如URL构造和调度、客户端或服务器上的持久状态存储、用户输入验证、本地化/国际化和异常报告。开发Tapestry应用程序需要使用普通HTML创建HTML模板,并将模板与少量Java代码相结合。在Tapestry中,您可以根据对象以及这些对象的方法和属性创建应用程序,而不是根据URL和查询参数。Tapestry为Java web应用程序带来了真正的面向对象开发。

另一种选择是框架。 Tapestry是一个开源框架,用于在Java中创建动态、健壮、高度可伸缩的web应用程序。Tapestry是对标准JavaServletAPI的补充和构建,因此它可以在任何Servlet容器或应用服务器中工作


Tapestry将web应用程序划分为一组页面,每个页面由组件构成。这提供了一个一致的结构,允许Tapestry框架负责关键问题,如URL构造和调度、客户端或服务器上的持久状态存储、用户输入验证、本地化/国际化和异常报告。开发Tapestry应用程序需要使用普通HTML创建HTML模板,并将模板与少量Java代码相结合。在Tapestry中,您可以根据对象以及这些对象的方法和属性创建应用程序,而不是根据URL和查询参数。Tapestry为Java web应用程序带来了真正的面向对象的开发。

Bean背后的思想现在存在于我所知道的任何适当的Java框架中。正如rich所提到的,Spring是一个很好/很好的全方位业务逻辑框架。看看它的类吧,这些类简直太棒了——另一个伟大的宝石是我个人更喜欢的视图层


我认为您不应该自己创建框架,而是应该找到一个适合您需要的框架,并开始为其代码库做出贡献,这样,您就可以从一个已经形成的用户基础开始,您的代码将被编写得更彻底,从而使您成为一名更好的程序员。

bean背后的思想现在在我所知道的任何适当的Java框架中都存在。正如rich所提到的,Spring是一个很好/很好的全方位业务逻辑框架。看看它的类吧,这些类简直太棒了——另一个伟大的宝石是我个人更喜欢的视图层

我认为你不应该自己做,而是应该找到一个适合你的n
EED并开始为它的代码库做出贡献,这样你就可以从一个已经形成的用户库开始,你的代码将被编写得更彻底,从而使你成为一个更好的程序员。

我从来没有尝试过它,但是JSF应该比JSP更好地工作


IBM对此很有兴趣。

我从未尝试过,但JSF应该比JSP更好地工作


IBM对这件事有点担心。

啊。看来你没把我的问题答对:

bean在应用程序中提供服务。假设我想开发一个带有swing gui的独立java应用程序,并从该应用程序中使用JavaEE应用程序范围中的实体

这就是我想要无缝实现的:以直观的方式创建实体、修改实体、删除实体,而不必关心实体管理器分离问题。如果远程调用EJB并将实体对象传回,它将在返回之前分离


我不想开发web应用程序。JSF/JSP等是高度集成的,但在许多环境中,独立的客户端应用程序会更好

啊。看来你没把我的问题答对:

bean在应用程序中提供服务。假设我想开发一个带有swing gui的独立java应用程序,并从该应用程序中使用JavaEE应用程序范围中的实体

这就是我想要无缝实现的:以直观的方式创建实体、修改实体、删除实体,而不必关心实体管理器分离问题。如果远程调用EJB并将实体对象传回,它将在返回之前分离

我不想开发web应用程序。JSF/JSP等是高度集成的,但在许多环境中,独立的客户端应用程序会更好

圣杯或狮鹫可能会引起人们的兴趣

圣杯或狮鹫可能会引起人们的兴趣

是由ANTLR背后的泰伦斯·帕尔写的。如果您对从模型生成某种文本表示感兴趣,这是非常好的

我使用它从同一个模型生成XML、网页和应用程序,取得了很好的效果。您可以编写一个模板来渲染对象。该模板可以基于从模型派生的数据递归地调用其他模板,包括。q、 五,

getter和map.get可以直接从模板中调用。模型可以是任何POJO。ST以其与控制器的严格分离而自豪,因此在模板本身中只允许很少的逻辑

和所有这些小语言一样,它是一种新的学习方法,可能不是你想要的。这真的很适合我。

是由ANTLR背后的特伦斯·帕尔写的。如果您对从模型生成某种文本表示感兴趣,这是非常好的

我使用它从同一个模型生成XML、网页和应用程序,取得了很好的效果。您可以编写一个模板来渲染对象。该模板可以基于从模型派生的数据递归地调用其他模板,包括。q、 五,

getter和map.get可以直接从模板中调用。模型可以是任何POJO。ST以其与控制器的严格分离而自豪,因此在模板本身中只允许很少的逻辑


和所有这些小语言一样,它是一种新的学习方法,可能不是你想要的。这对我来说非常合适。

在中间看到你的评论,我看到你想要一个桌面框架在java EE上。< /p> 这里的答案是JSF在ServletAPI上工作。当然是针对web的,但是等等,您仍然可以在应用程序中嵌入tomcat或jetty

这种可能性是无穷无尽的,如果您的业务层定义良好,只需构建一个调用业务功能的swing层即可

另外,JavaEE是一个API,可以替换某些部分,也可以只使用其中的一部分。该容器主要用于处理EJB、Servlets JNDI和其他小东西。所有这些都可以被桌面应用程序使用


<> p>因此,答案取决于您的具体目标和应用程序的实际设计/实现。

在中间看到您的注释,我看到您希望在java EE上有一个桌面框架。 这里的答案是JSF在ServletAPI上工作。当然是针对web的,但是等等,您仍然可以在应用程序中嵌入tomcat或jetty

这种可能性是无穷无尽的,如果您的业务层定义良好,只需构建一个调用业务功能的swing层即可

另外,JavaEE是一个API,可以替换某些部分,也可以只使用其中的一部分。该容器主要用于处理EJB、Servlets JNDI和其他小东西。所有这些都可以被桌面应用程序使用

因此,答案取决于您的具体目标和应用程序的实际设计/实现。

在基本模式中 在Java EE应用程序中,它被分为不同的层,其中有4个基本层

+--------------------+
|   Presentation     |
+--------------------+
| Controller/Actions |
+--------------------+
| Business Delegate  |
|     (Service)      |
+--------------------+
|  Data Access Layer |
+--------------------+
|      Database      |
+--------------------+
您的应用程序应该从一开始就被划分为这些层,这样您就可以在任何给定的时间点替换任何层,而不会影响其任何兄弟层

例如,如果将JDBC用于数据访问层,则应该能够用Hibernate替换它,而不会影响业务委托或数据库层。使用这种体系结构的好处是允许与多种技术协作。您的业务代理服务层应该能够与web服务对话并处理应用程序处理,而无需访问浏览器

关于使用JSP作为表示层,还有其他可用的技术,例如,如上所述,tapestry也有自己的呈现引擎。您还可以使用XML+XSLT来呈现UI。还有一些UI管理应用程序,如和,可以帮助您将各种技术集成为页面的不同组件,并将它们显示为一个组件


您还可以使用与之结合的轻量级swing组件,并开发桌面风格的企业应用程序。我们所需要的只是一点想象力和客户需求,我们可以使用任何东西作为表示层

在一个基本的现代Java EE应用程序中,它被分为不同的层,其中有4个基本层

+--------------------+
|   Presentation     |
+--------------------+
| Controller/Actions |
+--------------------+
| Business Delegate  |
|     (Service)      |
+--------------------+
|  Data Access Layer |
+--------------------+
|      Database      |
+--------------------+
您的应用程序应该从一开始就被划分为这些层,这样您就可以在任何给定的时间点替换任何层,而不会影响其任何兄弟层

例如,如果将JDBC用于数据访问层,则应该能够用Hibernate替换它,而不会影响业务委托或数据库层。使用这种体系结构的好处是允许与多种技术协作。您的业务代理服务层应该能够与web服务对话并处理应用程序处理,而无需访问浏览器

关于使用JSP作为表示层,还有其他可用的技术,例如,如上所述,tapestry也有自己的呈现引擎。您还可以使用XML+XSLT来呈现UI。还有一些UI管理应用程序,如和,可以帮助您将各种技术集成为页面的不同组件,并将它们显示为一个组件

您还可以使用与之结合的轻量级swing组件,并开发桌面风格的企业应用程序。我们所需要的只是一点想象力和客户需求,我们可以使用任何东西作为表示层