如何从JSF视图层

时间:2016-01-31 16:45:30

标签: spring jsf repository layer

我一起使用Spring和JSF。并且使用SpringBeanFacesELResolver进行了整合。

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

因此,现在可以从View层访问Persistence层。它似乎不是一个好方法。

如何解决?

2 个答案:

答案 0 :(得分:0)

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

作为旁注 - 如果您的应用程序没有多种客户端或多个跨国资源,那么很可能您需要一个业务/服务层,并且它有效直接从您的表示层/控制器调用您的存储库。

答案 1 :(得分:0)

JSF是服务器端技术,对于xhtml文件,面向servlet只有do the proper mapping。然后,最终用户无法查看任何xhtml文件的源内容,导致他对.xhtml源的所有请求都将通过faces servlet驱动,从而转换为纯HTML-CSS-javascript组合。

如果JSF是您的视图层框架(它是唯一声明的servlet映射),那么最终用户将无法访问您的服务方法,至少在没有跳过JSF本身的情况下也是如此。它将为您处理安全性和基本请求验证。

无论如何,我不建议你通过xhtml访问Spring bean。对于架构问题,只需使用托管bean即可。如果您查看文档的Integrating with other web frameworks部分,您将找到如何使用FacesContextUtils类从JSF托管bean中获取Spring bean。