更新:我使用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>
就我个人而言,我认为行动没有返回结果,但我不知道该怎么做,有人能告诉我如何解决问题吗?
答案 0 :(得分:2)
修改struts.xml中的操作结果,如下所示:
<result type="json" name="SUCCESS"><param name="root">results</param></result>
我们指定的根参数是Action中变量的名称。