【问题标题】:Front end technology that works for both Mobile and Web适用于移动和 Web 的前端技术
【发布时间】:2016-12-15 13:28:00
【问题描述】:

我正在构建具有 j2ee 后端(ejb、hibernate、mysql)的应用程序。 Web 应用程序前端最初设计为带有支持 bean 的 jsf(primefaces)。

此外,已决定将来在移动应用程序中使用 cordove / html5 页面。

我对此很陌生,在为网络和移动应用程序重用代码以及这些不同技术的集成方面有几个问题。而不是为移动端单独开发

  1. 如果我使用纯 html5 / javascript,可以在 Web 应用程序以及 codova 移动应用程序中使用相同的页面。
  2. 如果是这样,那么正常的支持 bean 逻辑呢?我现在把它放在哪里? cordova html5页面可以访问backing bean吗?还有jsf绑定,如何在网页中接收数据
  3. javascript 是访问其余 web 服务的唯一方法吗?我会通过网络应用程序和移动设备访问这些内容吗
  4. 总而言之,使用cordova html5 / js / css 开发意味着100% 远离jsf。这意味着无法访问诸如 primefaces 之类的 jsf 组件或框架。是否还有其他技术可以替代这些技术以兼容两者

【问题讨论】:

  • 需要非常明确的是,“移动应用程序”是否是真正的“应用程序”,将安装在手机上并在那里运行,或者它是移动网络应用程序还是它混合(启动某些东西然后作为 Web 应用程序继续运行的小应用程序)

标签: javascript html rest cordova jsf


【解决方案1】:

如果我使用纯 html5 / javascript 可以在网络中使用相同的页面吗 应用程序以及 codova 移动应用程序。

是的,这就是重点,您甚至可以在 cordova 应用程序中使用 jquery 等。

如果是这样,那么正常的 backing bean 逻辑呢?我把那个放在哪里 现在? cordova html5页面可以访问backing bean吗?还 jsf绑定,网页中如何接收数据

任何支持逻辑都可以由任何东西提供服务,Node.js、PHP 等。

javascript 是访问其余网络服务的唯一方法吗?我会不会 从网络应用程序和移动设备访问这些

这里的逻辑应该没有变化,两者都可以使用ajax来访问你的webservices。

总而言之,用cordova html5 / js / css开发意味着什么 远离 jsf 100%。这意味着无法访问 jsf 组件 或像 primefaces 这样的框架。还有什么可以代替这些 两种技术都兼容

任何后端,都可以保持原样。因此,如果您有任何 REST API,它们仍然可以工作.. 任何客户端都将是新的,.. 您提到的 Primefaces -> PrimeUI is a pure CSS-JS library designed to work with any server side and client side technology,所以您应该能够使用它,它们还有一个 Angular2 绑定应该也可以。

好的,我正在更新此内容以解释后端是什么。如果您的后端有任何逻辑,例如。假设您有一些发布发票的逻辑,如果这都是自包含的,并且不依赖于任何视觉/交互,那么这很容易被公开和重用。您只需要通过提供某种 IPC 来公开这一点,无论是简单的 REST api,甚至是基于 websocket 的 API,这样做意味着您需要重写的唯一部分是前端(可视化的东西)和某种为您的后端服务提供 IPC..

【讨论】:

  • 我认为您的回答有点错过了现在实现“支持 bean”逻辑的方式。如果它是在 JSF 中,那么它是基于休息的机会很小。还有 PrimeFaces != Prime-UI(虽然 url 包含两者的“primefaces”。所以需要重写。
  • @Kukeltje 我不提倡他仍然使用 JSF,我不会将 JSF 页面归类为后端,因为它们似乎更多基于客户端/UI。但是如果他的 JSF 页面从一个 RESTful 服务,那么这个仍然可以使用,可能我没有说得太清楚。即使他的后端现在不使用 RESTful,他也只需要使用类似 RESTful API 的东西来公开他的后端逻辑。 IOW:不需要完全重写后端,我不是 JAVA 专家,但我觉得公开 RESTful API 应该很简单。
  • 我知道,我不会对您的答案投反对票,因为其中大部分都很好。只是大多数时候如果你有一个 JSF ui,你没有休息服务,这是我的观点(以及你在评论中的观点),并不是所有的开发者(我认为一般 50%)都关注分离创建一个简单的基于 Java 的业务服务,可以更容易地暴露为一个休息服务。所以你的这个添加使答案相当好;-)
  • @Kukeltje 好的,没问题.. 就像我说的,我不是 Java 专家,也从未使用过 JSF,但 wiki 确实说它只是 is a Java specification for building component-based user interfaces。所以我的假设是后端是独立的,例如。即使后端是一些包含业务逻辑甚至 MySQL 数据库的 Java 对象。
最近更新 更多