0

这是我的情况的简短描述...

  • 我有实现 BookingService 的 spring bean BookingServiceImpl
  • BookingService 有方法:RoomDescription getRoomDescriptionById(String roomId);
  • 我也有带有 javascript 的 JSP 页面
  • 我想在javascript中做这样的事情

    var roomDescription = bookingService.getRoomDescriptionById(222);

    /// ... 使用房间描述

问题是:是否有任何现有的框架可以做这样的事情(假设所有参数和方法结果都是 JSON 友好的,神奇地允许从 javascript 中校准 spring bean 而无需额外的样板代码)?

4

2 回答 2

2

Spring 提供了通过Web MVC 框架公开 RESTful 端点的机制

文档非常好。您的特定示例的控制器定义可能如下所示:

@Controller
@RequestMapping(value = "/rooms/{roomId}", method = RequestMethod.GET, produces="application/json")
@ResponseBody
public Room getRoom(@PathVariable String roomId, ModelMap modelMap) {    
    return bookingService.getRoomById(roomId);
}

在 javascript 方面,您可以使用 jQuery 进行 ajax 调用来检索数据。这是一个可能看起来像的示例:

$.getJSON('http://yourserver.com/rooms/222',
    function(room) {
       // Do something with room.description
    });

这是一个基本示例(没有适当的错误处理、安全性等)。这是我所知道的从 javascript 调用 Spring RESTful 的现有框架最接近的东西。如果您需要在客户端 javascript 上访问 Room 数据,那么您需要通过一些 Spring 构造(例如控制器)公开它

于 2012-09-21T23:47:29.153 回答
1

看看 DWR。这与创建 js 客户端一样接近。 http://directwebremoting.org/dwr/documentation/server/integration/spring.html

于 2012-09-21T23:42:00.700 回答