推荐的Java / AJAX设计模式?

时间:2008-11-06 23:33:31

标签: java ajax

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

考虑一个简单的场景:

  1. 用户单击一个按钮,该按钮向Java方法发送请求以从DB获取数据。
  2. Java对象由方法返回,需要转换为HTML表格。
  3. HTML表格显示在JSP上。
  4. 我们目前的工作:

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

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

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

        谢谢,

        SP

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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