在Play框架中发送一个Javascript字符串给java方法

Sending a String in Javascript to java method in Play Framework

本文关键字:Javascript 一个 字符串 方法 java 框架 Play      更新时间:2023-09-26

我正在为我的大学开发一个系统,我使用的是游戏框架。这个系统的管理员在谷歌地图上设置了一个标记,我从那个点得到坐标。

现在我正试图将此信息传递到服务器端,以便我可以将这些存储到mySQL数据库中的字符串中。我唯一的问题是从javascript/JQuery的字符串传递到java函数的数据。

我在网上尝试了不同的解决方案,但其中一些似乎过时了,我不知道如何做到这一点。

我只在Java, Javascript, JQuery和PHP中编程,从未使用过AJAX(如JQuery的$.get()方法),但我认为它可能与我从PHP中了解的非常相似。

。http://java.dzone.com/articles/jquery-ajax-play-2

我想通过一个按钮点击我的java函数我的字符串,所以我可以将它存储在我的数据库。

我真的很困惑。

我知道我可以用

<a href="{@routes.Application.postMethod()}"> Send </>

,然后在像

这样的路由中提到这个函数

POST/POST controllers.Application.post();

但是我如何传递我的qjuery字符串?以及如何将字符串存储为java函数中的字符串,例如:

public static Result post(String Lat, String Lng){
???????????? EVOLUTION NEEDED  ?????
}

提前谢谢你,我真的需要你的帮助:)!

我不明白你为什么要做POST,因为这可以使用GET请求来完成。

根据这个例子:http://www.playframework.com/documentation/1.2/ajax jsaction

我们可以看到Play使它更容易使用jsAction标签。假设您有以下路由:

GET     /admins/marker        Admins.marker

然后在你的HTML底部,你应该这样做:

<script type="text/javascript">
   $('#myButton').click( function() {
   var action = #{jsAction @marker(':latitude',':longitude') /}
   $('#result').load(
       action({latitude: '23', longitude: $('#longitudeField').val }), 
       function() {
           $('#content').css('visibility', 'visible')
       }
   )
   });
</script>

在这种情况下,请求将发送如下(示例):

GET /admins/marker?latitude=23&longitude=67

然后在你的后端,你需要java fn来处理这个路由

基本上javascript/jquery,当#myButton元素被点击时被调用,然后我们生成路由URL,我们将使用jsAction发出请求,然后我们使用load来发出GET请求。如果你愿意,你也可以把这个改成post