gpt4 book ai didi

jsf - 集成 Spring MVC 和 JSF 2.1

转载 作者:行者123 更新时间:2023-12-02 15:15:24 25 4
gpt4 key购买 nike

我有一个用 Spring MVC 和 Hibernate-Search 构建的巨大只读 RESTFUL 应用程序,它将一些数据编码(marshal)到 json 和 xml 中,以供移动应用程序和监控应用程序使用。

我们的网址非常简单,我们有这个:

server:port/entity/id/?marshalling=json

server:port/entity/id/?marshalling=xml

有时

server:port/entity/id/?marshalling=something&filterProp=entity.prop&ordering=desc

现在我需要使用 JSF 2.1 为此创建一个表示层并添加一些用户管理功能,我正在考虑这样的事情:

server:port/entity/id/?marshall=html

或者完全省略 marshall 请求参数。

现在。据我所知,只能耦合 JSF 2.1 和 Spring Web Flow,而不能直接耦合 Spring MVC。有人知道我怎样才能完成这个要求吗?

最佳答案

Spring MVC 和 JSF 都工作在单独的 servlet 上,这些 servlet 只能映射到不与另一个 servlet 冲突的上下文,因此这并不容易完成,如果你成功了,那么这基本上是一个巨大的黑客攻击。

如果我绝对必须这样做(我不会),那么我可能会使用 marshall servlet 克隆我的 JSF 请求,使用 WebClient 将该请求发送到我的 FacesServlet ,然后将返回的 WebClient 响应复制到我的 marshall servlet 响应中并返回。这对用户来说是透明的,但非常困惑并且可能不安全。

实现基于 Web 的单独表示层的最佳方法是将表示层的请求映射到 FacesServlet,以便您的 RESTFUL Web 服务不会被直接调用。

Actor ->/admin/page.jsf->FacesServlet->JSF View ->JSF Controller -> 业务逻辑层 -> RESTFUL Web 服务

通过这种方式,您的 RESTFUL Web 服务可以返回 XML 或 JSON 数据并充当您的 DAO,您的业务逻辑层可以对此执行其他逻辑。

关于jsf - 集成 Spring MVC 和 JSF 2.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12373701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com