代码之家  ›  专栏  ›  技术社区  ›  Marcel

如何将Spring服务/持久层与JSF视图层隔离

  •  1
  • Marcel  · 技术社区  · 10 年前

    我同时使用Spring和JSF。集成已完成 SpringBeanFacesELResolver .

    我正在用注释DAO类 @Repository 注释。但这导致了一个问题:DAO类现在对XHTML/JSF/JSP文件可见

    因此,现在可以从视图层访问持久层了。这似乎不是一个好方法。

    如何解决这个问题?

    2 回复  |  直到 10 年前
        1
  •  0
  •   Community Mohan Dere    9 年前

    JSF是一个 服务器端 技术,只是 do the proper mapping 针对xhtml文件的faceservlet。最终用户将无法看到任何xhtml文件的源内容,因为他对.xhtml源的所有请求都将通过faces servlet驱动,从而转换为纯HTML CSS javascript组合。

    如果JSF是您的视图层框架(因为它是唯一声明的servlet映射),那么最终用户将无法访问您的服务方法,至少不会跳过JSF本身。它将为您提供安全性和基本请求验证。

    无论如何,我不建议您通过xhtml访问Springbeans。对于架构问题,只需使用托管bean即可。如果你看看 Integrating with other web frameworks 在文档的一部分,您将发现如何使用 FacesContextUtils

        2
  •  0
  •   Fahim Farook    10 年前

    类路径中的任何公共类都将对JSP/JSF可见。但是,只要您不从表示层导入/使用这些类,我认为这不会破坏基于层的间接。

    附带说明一下,如果您的应用程序没有多种类型的客户端或多个跨国资源,那么很可能您确实需要一个业务/服务层,并且可以直接从表示层/控制器调用存储库。

    推荐文章