grails - 如何将Javascript变量发送到Grails Controller 以查询Neo4J

标签 grails neo4j

我是一个新手,试图在Grails上找到Neo4J的用途。

基本上,我已经通过Neo4J浏览器创建了20个杂货项目节点,并且我想创建一个简单的Grails网站,该站点使用户可以搜索杂货项目并直观地显示与之相关的物品。

我的index.gsp有:

<input id="item" />

我的viz.js具有:
$('#item').keyup(function() {
var item = $('#item').val();

我的Item Domain类具有
class Item {
static mapWith = "neo4j"
String name

我的ItemController类具有:
def index() {
def item = Item.list() [item:item] //No idea, just trying out whatever i find :( 

和类似的查询:
def query = Item.cypherStatic ("""start n=node({Item}) match (n)-[r]->(x) where r='partner' return n, x)

问题:
  • 如何正确地将JS'item'变量发送到ItemController?
  • 如何使用'item'变量正确查询与该项目具有“伙伴”关系的节点名称?
  • 最佳答案

    除了Motilals的答案,您还需要一个包装表,该包装表的 Action 会指向您的 Controller

    喜欢

     <g:form controller="itemController" action="index" >
    
         <input type="text" id="item" name="item" value="" /> 
         <input type="submit" value="submit" >
     </g:form>
    

    然后点击提交的for将调用您的索引操作,您可以在其中解析值
     def item = params.item
    

    但是它看起来更像是您在keyup-function之后需要一些异步的东西,因此您可以这样做:
     $('#item').keyup(function() {
        var item = $('#item').val();
    
        $.ajax({
          url: "${createLink(controller:'itemController', action:'index')}",
          data:"&item="+item
          })
        .done(function( data ) {
          console.log(data)
        });
     });
    

    在这种情况下,您需要注意索引操作将返回的内容,因此您可以在.done()中执行响应所需的任何操作。

    还要注意,当您将 Action 命名为“索引”时,它将在以下位置可用
     .../myproject/item/index
    

    或,那很重要
    .../myproject/item/
    

    因此,如果您的索引方法需要输入的数据,那么如果用户直接进入该网址,它将丢失它们

    因此您的索引操作宁愿使用输入来呈现页面
    然后您定义另一个操作,用于根据输入和返回数据执行查询

    关于grails - 如何将Javascript变量发送到Grails Controller 以查询Neo4J,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20992568/

    相关文章:

    java - 在war文件中的WEB-INF之外创建配置属性文件

    grails - Activiti BPM 初学者指南?

    java - neo4j - 对于这种情况,独立服务器还是嵌入式服务器?

    neo4j - Cypher:多种有向和无向关系类型

    Grails 3.x 升级插件

    json - 使用条件运算符在 Grails 中渲染 'as JSON' 无法正确渲染

    javascript - 如何将值直接从 Controller 传递到 Grails 中的 javascript 文件

    java - 如何更改neo4j中节点的标签?

    neo4j - 如何在neo4j中设置权限?

    database - 如何将社交网络关系 csv(列表字典)文件导入 neo4j 图形数据库?