0

これは私の状況の簡単な説明です...

  • 私はBookingServiceを実装するSpring Bean BookingServiceImplを持っています
  • BookingService には次のメソッドがあります: RoomDescription getRoomDescriptionById(String roomId);
  • javascriptを含むJSPページもあります
  • 私はjavascriptでこのようなことをしたい

    var roomDescription = bookingService.getRoomDescriptionById(222);

    /// ... roomDescription を使用

問題は、そのようなことを行う既存のフレームワークはありますか (すべてのパラメーターとメソッドの結果が 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 に答える