0

我很困惑为什么自动完成不起作用。下面是 .jsp 代码中的表单:

<form:form method="post" action="save.html" modelAttribute="word">
    <table>
        <tr>
            <th>German word</th>
            <td><form:input path="german" id="german" /></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="Save" /></td>
        </tr>
    </table>
    <br />
</form:form>

这是 javascript 函数(在同一个 .jsp 文件中)

$(document).ready(function() { 
$( "#german" ).autocomplete({
    source: '${pageContext. request. contextPath}/get_word_list.html'
});    

});

这是控制器的相关部分:

@Autowired
private WordService wordService;

@RequestMapping(value = "/goToDictionary", method = RequestMethod.GET)
public ModelAndView index() {

    Word word = new Word();
    return new ModelAndView("dictionary", "word", word);
}

@RequestMapping(value = "/get_word_list", method = RequestMethod.GET, headers = "Accept=*/*")
public @ResponseBody
List<String> getCountryList(@RequestParam("term") String query) {
    System.out.println(query);
    return getMatch(query);
}

public List<String> getMatch(String query) {
    query = query.toLowerCase();
    List<String> matched = new ArrayList<String>();
    for (Word v : wordService.getAllWord()) {
        if (v.getGerman().toLowerCase().startsWith(query)) {
            matched.add(v.getGerman());
        }
    }
    return matched;
}

我确定 getMatch(String query) 被调用并正常工作。所以我想问题出在jsp上。文件

任何帮助是极大的赞赏。

4

2 回答 2

0

好的,我找到了解决方案。它在 spring-servlet.xml 文件中。它没有用,因为我没有添加这个。

xsi:schemaLocation="ttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

我添加了,现在一切正常

于 2012-09-09T20:20:59.697 回答
0

[对于 JSON 填充列表] 也许你应该看一下注解的produces属性。@RequestMapping它需要一个 String[] 作为值。从 Spring 3.1.x 版本开始可用。我目前使用的是 3.1.2,我可以application/json毫无问题地得到一些。

当然,您应该将产品添加到您所在国家/地区列表的数据提供者中。

[为 JavaScript 填写列表] 也许是 ${pageContext. 要求。contextPath} 未正确评估。您是否检查过您的 JSP 生成的代码,例如使用 Firebug。

于 2012-09-09T14:02:51.520 回答