java - 如何使用 ajax 显示 DOJO 自动完成值

标签 java ajax struts2 dojo

我正在尝试使用 dojo 自动完成器对信息的 HashMap 进行 ajax 检索,但下拉菜单中似乎没有显示任何内容。请帮忙

我的 JSP 代码:

 <sx:head/>
 .......
 <s:url id="companyList" action="AjaxAutoCompleteCompanyPOCAction" />
 <sx:autocompleter name="company" href="%{companyList}"  size="24" loadOnTextChange="true"  preload="false" loadMinimumCount="1" showDownArrow="false" autoComplete="false" searchType="substring" key="rental.company"/>

我的 Struts.XML:

  <action name="AjaxAutoCompleteCompanyPOCAction" class="com.kodi.action.jobs.AjaxAutoCompleteCompanyPOCAction" method="retrieveListOfCompany" >
       <result type="json">
           <param name="root">json</param>
       </result>
    </action>

我的行动

 public String retrieveListOfCompany(){
    //if(KodiUtil.isMatch(getCompany())){ // validate special char
        setJson(new HashMap<String, String>()); // create a JSON hashmap
         if(company != null && company.length() > 0) { // check if string is empty
              List<CompanyEntity> companylist = manager.retrieveCompanyName(getCompany());  // retrieve the companies name
              for (CompanyEntity companies : companylist){
                 getJson().put(companies.getCompany_name(),""+companies.getCompany_id());
              }

         }
    return "SUCCESS";

}

到目前为止,代码确实在我的 Action 类中调用了retrieveListOfCompany(),获取了数据,但它没有显示在 JSP 页面上..请帮忙.. 我收到此错误,

No result defined for action com.kodi.action.jobs.AjaxAutoCompleteCompanyPOCAction and result SUCCESS
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)

但是当我将 struts.xml 设置为

<result name="SUCCESS" type="json">
           <param name="root">json</param>
       </result>

我明白了=(

java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lang/Object;)Ljava/lang/Object;
    at com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:157)
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

我为此使用 struts2-dojo-plugin-2.1.8.1.jar

谢谢!

最佳答案

Dojo 插件已从 Struts2 中弃用,但有 JQuery 插件 http://code.google.com/p/struts2-jquery/并展示http://struts.jgeppert.com/struts2-jquery-showcase/index.action .

关于java - 如何使用 ajax 显示 DOJO 自动完成值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12894321/

相关文章:

java - 带有图像 struts2 的复选框列表

java - 在 Windows 上用 map reduce 程序创建一个 jar 文件,然后在 linux (hadoop) 上运行它

java - 从数组创建 ArrayList

java - 从 txt 文件中读取整数并存储到数组中

javascript - 如何复制 SharePoint 2010 内部进行的社交 ajax 调用?

javascript - 无法在我的客户表单中选择一个值并将其标记为在 Silvio Moreto 的 selectpicker 中选择

java - 使用 Struts Select 标签指定选项标签 (listValue)

java - 在 volatile 变量写入后写入的变量的可见性

javascript - 如何确保在 DOM 中准备好随附的 HTML(也通过 AJAX 接收)后执行通过 AJAX 插入的 JavaScript?

java - 将 session ID 传递到 Struts 2 中的 URL JSP 页面