在某些实现中,我看到 jsp 使用 java bean 类充当中间存储/数据访问层来从 jcr 获取数据。
为什么会这样,因为jsp可以通过jcr api直接访问jcr。
关注点分离?数据的内存缓存?
只是想知道为什么在最初编写 jcr api 时会存在这种模式。
在较小的安装中使用 scriptlet 可能没有那么大的问题,但在大型多站点项目中。
分离 UI 代码和模型/业务逻辑简化了可维护性,并允许代码在项目中的可重用性。更改布局也变得容易得多。通常,这种分离是通过使用组件 bean 来访问 JCR 存储库并提供数据以及仅将 JSP 用于视图来完成的。
试想一下,您的客户需要在多个站点中适当地进行较大的 UI 更改。更改与 scriptlet 和 UI 代码混合在一起的 JSP 更加困难,尤其是在您拥有大量此类 JSP 的情况下。
从 OO 的角度来看,使用 JSP 和 scriptlet 会阻止您使用继承和组合。Scriptlet 不能抽象。我体验到 java bean 比 scriptlet 更容易调试,特别是在出现异常的情况下,java bean 更容易进行单元测试。