2013-09-16 134 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框或頁面加載時。 請幫幫我它根本沒有被調用。 –