2013-09-16 94 views
1

我已阅读了很多关于此主题的文章&知道它应该如何工作,但无论如何我都不能成功运行代码。Autocompleter Struts 2 jQuery

以下代码正在运行,但未加载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> 

这里是我的Action类:

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

<sx:head />应该在执行加载JavaScript的<head>标记的主体中。它应该在任何JS标签结束之前加载。

+0

我照你说的,但现在它给 当我添加一行 \t 你好 // *****这被添加 \t 当点击你好 消息:\t 没有为命名空间/和动作名称g映射的动作。 –

+1

在这个主题上,我有大约100个答案,没有人接受。请参阅http://stackoverflow.com/a/16043066/573032 –

+0

何时调用操作?就像我点击autocompleter框或页面加载时。 请帮帮我它根本没有被调用。 –