【问题标题】:Recommended Java/AJAX design pattern?推荐的 Java/AJAX 设计模式?
【发布时间】:2008-11-06 23:33:31
【问题描述】:

我们需要一些关于在 Java 应用程序中使用 AJAX 的良好设计模式的意见。

考虑一个简单的场景:

  1. 用户单击一个按钮,该按钮向 Java 方法发送请求以从 DB 中获取数据。
  2. Java对象是方法返回的,需要转换成HTML表格。
  3. HTML 表格显示在 JSP 上。

我们目前的工作:

  1. 在 JSP 页面上,用户单击“显示用户”按钮
  2. 使用 Prototype.js 的按钮调用“中间人”JSP,该 JSP 将请求转发到 Java 方法以从数据库中获取数据。
  3. 该方法将 Java 对象返回给将 Java 对象转换为 HTML 的“中间人”JSP(因为来自调用 JSP 的 AJAX 调用将无法直接处理 Java 对象)。
  4. HTML 然后返回到 Prototype 调用,该调用会更新调用 JSP 上的 div。

我们的担忧是:

  1. 我们希望保持业务/表示逻辑的分离,并且不希望在我们的 Java 方法中使用 HTML/JavaScript 代码。
  2. 牢记 (1),使用“中间人”JSP 是一种可行的方法吗?还是应该将 Java 对象作为 XML/XSLT 返回给 AJAX 请求?
  3. 我们采用的上述方式只需要很少的 JavaScript,并且适用于所有浏览器。
  4. 我们查看了其他一些包 - DWR、GWT,但要么对 JavaScript 的依赖过多,要么需要在 Java 类中提供 UI 组件。

我们上面的做事方式OK吗?还是有其他更好的方法?

任何帮助/想法将不胜感激。

谢谢,

SP

【问题讨论】:

    标签: java ajax


    【解决方案1】:

    听起来不错。您正在将视图组件与模型组件分开。不管调用是如何到达服务器的,AJAX 与否,它都应该由与模型交互的控制器(例如 servlet)接收,这就是你的 Java 类,它从数据库中获取数据并转发到用于呈现视图的 JSP 页面。

    有些框架可以简化样板代码,但您描述的设计听起来不错。

    【讨论】:

      【解决方案2】:

      我不确定您是否注意到,但您的解决方案与文森特提出的方案之间存在一个显着差异。这就是请求最初应该由 servlet(或控制器,或 Struts 操作等)而不是“中间人”JSP 接收。

      MVC 规定 JSP 应该只用于我们从模型数据生成视图,流控制在 Java 代码中更好地处理。

      【讨论】:

      • 唐,是的,我确实明白了……我们也计划走那条路线。不过感谢您的跟进。问候,SP
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      相关资源
      最近更新 更多