关于Struts 2和Struts-jQuery Autocompleter的问题

时间:2011-04-26 07:37:00

标签: jquery jquery-plugins struts2 struts

更新:我使用firebug获得结果,但结果没有显示在页面上?谁知道为什么?

结果如下:

{"results":["hello","bye"]}

(PS:我发布的jason插件已弃用,会触发错误。我现在切换到默认的struts-jason-plugin。)

大家好,我在工作上遇到了问题。 我正在使用所有依赖项的最新版本。 (Struts 2.2.1) 我想用数据库进行实时搜索。 这是我的JSP文件中的代码:

<sj:autocompleter name="movieName" id="movieName"
                                href="%{jsonlanguages}" 
                                delay="50" 
                                loadMinimumCount="2"
                                ></sj:autocompleter>

jsonlanguages是指一个动作,我将其定义为

 <s:url id="jsonlanguages" action="movieLiveSearch"/> 

现在当前状态是当用户在自动填充器中键入时调用此操作,但不返回包含结果的下拉列表。

我的动作的执行功能定义如下:

public String display() throws IOException {
    System.out.println("execute movie live search");
    results.add("hello");
    results.add("goodbye");     
    return "SUCCESS";
}

其中结果定义为

private List<String> results;

目前我只想返回变量结果。(暂时将db分开)。 我的struts.xml文件:

<result-types>
    <result-type name="json" class="com.googlecode.jsonplugin.JSONResult"/>
</result-types>

<action name="movieLiveSearch" class="proj.MovieManagement.controller.MovieLiveSearchAction" method="display">
<result type="json" name="SUCCESS">admin.jsp</result>
</action>

就我个人而言,我认为行动没有返回结果,但我不知道该怎么做,有人能告诉我如何解决问题吗?

1 个答案:

答案 0 :(得分:2)

修改struts.xml中的操作结果,如下所示:

<result type="json" name="SUCCESS"><param name="root">results</param></result>

我们指定的根参数是Action中变量的名称。