aem - 从jsp访问jcr中的数据

标签 aem jcr

在某些实现中,我看到 jsp 使用 java bean 类作为中间存储/数据访问层来从 jcr 获取数据。

这是为什么呢,既然jsp可以通过jcr api直接访问jcr。

关注点分离?数据的内存缓存?

只是想知道为什么在最初编写 jcr api 时会存在这样的模式。

最佳答案

在小型安装中使用 scriptlet 可能不会有太大问题,但在大型多站点项目中却会出现问题。

分离 UI 代码和模型/业务逻辑可以简化可维护性,并允许在项目中重用代码。更改布局也变得更加容易。通常,这种分离是通过使用组件 bean 访问 JCR 存储库并提供数据以及仅使用 JSP 来实现 View 。

想象一下,您的客户可能需要在多个站点中进行较大的 UI 更改。更改与 scriptlet 和 UI 代码混合在一起的 JSP 会比较困难,尤其是当您有很多这样的 JSP 时。

从面向对象的角度来看,使用 JSP 和 scriptlet 会阻止您使用继承和组合。 Scriptlet 不能变得抽象。 我的经验是,java bean 比 scriptlet 更容易调试,特别是在出现异常的情况下,并且 java bean 可以更容易进行单元测试。

关于aem - 从jsp访问jcr中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17052537/

相关文章:

dialog - 如何在 aem 6 触摸对话框中创建单选按钮

javascript - 确保组件的客户端库文件仅在组件存在时加载到页面上的最佳方法是什么?

aem - javax.jcr.InvalidItemStateException : Item cannot be saved

repository - 在常见的 x86 硬件上水平扩展存储库

java - AEM-视觉 : data-sly-attribute erasing css on tag

java - ServiceReference 未获取所有类名以进行激活

java - Jackrabbit,保存很多文档太慢了

java - 兔子用户管理

java - 如何在后台线程中获取 ResourceResolver?

jackrabbit - Sling vs CMIS 作为 Apache jackrabbit 的 REST 接口(interface)