从Strut2获取输入值jquery Autocompleter

时间:2017-12-11 18:54:50

标签: java jquery json ajax struts2

我想从struts2-jquery-plugin中的Autocompleter选项创建一个自动完成的组合框。有没有办法让键入字符串到POJO变量。到目前为止,我已经看到将SQL列表加载到JSON然后给出建议。我想在一个人打字并获取SQL查询并返回JSON对象时获取字符串。到目前为止,我已经完成了JSON部分,问题在于从<获取输入字符串。 sj:autocompleter>,有一种方法可以通过ajax得到这个,任何人都可以帮助我,这是我的代码

  <s:url var="remoteurl" action="autoCompleterAction"/>
<sj:autocompleter
        id="user"
        href="%{remoteurl}"
        delay="50"
        loadMinimumCount="2"

/>

struts.xml中

   <action name="autoCompleterAction" class="com.doerit.action.AjaxAutoComplete" method="setCombo">
    <result name="success" type="json">
    <param name="root">newnames</param>

        </result>
    </action>`

编辑1: 好吧现在我写了一个ajax来获取JSON对象到我的java class.above任务我提到完成,现在Autocompleter没有触发struts事件来获取JSON数据。所以如何激活struts事件

到目前为止这是我的scrpit;

<s:url var="remoteurl" action="autoCompleterAction"/>
<script type='text/javascript'>
//    document.getElementById ("user_widget").addEventListener ("keyup", getname, false);

    function getname() {
        var text1=document.getElementById("user_widget").value.trim();
        console.log(text1);
        $.ajax({
            url: "userinput.html",
            type: "Post",
            data:JSON.stringify({"name":text1}),
            contentType: "application/json",
            dataType:"json",
            success:function (resp) {

                console.log(resp);

            },

        })
    }
</script>

<sj:autocompleter
        id="user"
        name="user"
        href="%{remoteurl}"
        delay="50"
        loadMinimumCount="2"
        onkeyup="getname()"

/>

1 个答案:

答案 0 :(得分:1)

我删除了插件,并使用jquery自动完成功能和完整的ajax JSON响应。现在它的工作。如果有兴趣的话,你可以从这里找到代码Jquery Autocomplete