0

struts + spring + hibernate でページを作成しています。データベースから値のリストをロードすることになっているjQuery選択ウィジェットがありますが、データが入力されていません。これはこのスレッドの続きです: <sj:select> アクションを呼び出していないため、この問題の原因をゆっくりと絞り込んでいます。

これが私のコードです:

struts.xml

<action name="getListOfCities" class="cityActions">
    <result type="json" name="SUCCESS">
        <param name="root">cities</param>
    </result>
</action>  

page.jsp

(地図用)

<s:url id="cityList" action="getListOfCities"/>
  <sj:select name="select" href="%{cityList}" list="cities" headerKey="-1" emptyOption="true" headerValue="Pick one"/>

CityAction.java

public class CityActions extends ActionSupport implements ModelDriven<CityVO> {

public void setCityService(CityService cityService) {
    this.cityService = cityService;
}

public CityVO getModel(){
    System.out.println("Executing getModel()");
    return city;
}

public String execute() {
    System.out.println("Executing cities");
    return "SUCCESS";
}   

public String getJSON(){
    return execute();
}
public String addCity(){
    try{
        cityService.addCity(city);
        return "SUCCESS";}
    catch(Exception e){
        return "ERROR";
    }catch(Throwable t){
        return "ERROR";
    }
}
public Map<String, String> getCities() {
    List<CityVO> cityList = cityService.listCities();

    Iterator<CityVO> iterator = cityList.iterator();
    while (iterator.hasNext()) {
        CityVO fac = iterator.next();
        cities.put(fac.getCityName(), Integer.toString(fac.getCityId()));
    }
    System.out.println("Cities: " + cities);

    return cities;
}   

public List<CityVO> getCityList2(){
    System.out.println("Getting list of cityVOs");
    cityList2 = cityService.listCities();
    return cityList2;
}

}

私のアクション クラスは、JSON オブジェクトを VO またはマップとして返​​すことをサポートしています。現在の page.jsp コードは、地図機能用です。

私はfirebugを使用して問題を解決しようとしています。JSON オブジェクトが正しく返されていることがわかります。次のようになります。

{"Foo":"3","Bar":"4","Hello":"2"}

ただし、エラーが発生しますが、それが sj:select ウィジェットによるものであることはわかっています。削除すると、エラーはなくなります。

a is undefined
f()jquery....min.js (line 2)
a = undefined
c = function()
d = undefined

これは JSON 値の解析に問題があることを示していると Google は信じさせてくれましたが、struts2-jquery プラグインに関連する例は見つかりませんでした。sj:select に dataType="json" を追加しようとしましたが、問題は解決しません。

誰かに提案があれば、それは大歓迎です。私はこれでかなりの数日間立ち往生しています。

4

1 に答える 1

0

このアクションを試す必要があります。

<action name="getListOfCities" class="cityActions">
    <result type="json"/>
</action>  
于 2014-01-21T18:22:06.050 に答える