Autocompleter Struts 2 jQuery

时间:2013-09-16 17:02:48

标签: java jquery jsp struts2 autocomplete

我在这个主题上已经阅读了很多内容。知道它应该如何工作,但无论如何我都没有成功运行代码。

以下显示的代码正在运行,但未加载JSONObject

这是我的x.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@taglib uri="/struts-dojo-tags" prefix="sx"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<sx:head />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Auto complete example</title>
</head>
<body bgcolor="lightblue">
    <h2>Welcome to India</h2>
    <s:url id="optionsUrl" action="g" />

    <sx:autocompleter href="%{#optionsUrl}" loadOnTextChange="true"
        loadMinimumCount="3" value="Florida" keyValue="FL" />
</body>
</html>

以下是struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="json-default">

        <action name="g" class="com.AutoCompleter">
            <result type='json'>
                <param name="root">options</param>
            </result>
        </action>
    </package>

</struts>

这是我的行动类:

package com;
import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
public class AutoCompleter extends ActionSupport {
   public Map<String, String> getOptions() {
       System.out.println("Hello");
      Map<String,String> options = new HashMap<String,String>();
      options.put("Florida", "FL");
      options.put("Alabama", "AL");
      return options;
   }
}

1 个答案:

答案 0 :(得分:1)

<sx:head />应位于执行加载javascript的<head>标记的正文中。它应该在任何JS标记结束之前加载。