0

dojoオートコンプリートを使用して情報のハッシュマップの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を使用しています

ありがとう!

4

2 に答える 2

1

Dojo プラグインは Struts2 から廃止されましたが、JQuery プラグインhttp://code.google.com/p/struts2-jquery/とショーケースhttp://struts.jgeppert.com/struts2-jquery-showcase/index.actionがあります。

于 2012-10-15T11:47:23.497 に答える
0

ようやく自分のアプリに問題があることがわかりました。

私が得たエラーは、jsonplugin と dojo および struts コアとの非互換性によるものです..

誰かが同じ問題を抱えている場合は、jarファイルをより互換性のあるバージョンにダウングレードしてください

現在、私は使用しています

struts2-json-plugin-2.2.1

struts2-dojo-plugin-2.1.8.1

struts2-core-2.2.1.1

お役に立てれば

于 2012-10-17T06:29:54.553 に答える