在某些实现中,我看到 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/