私はStruts2 ActionクラスからJSON応答を得るのに苦労しています。私は自分のプロジェクトで以下の設定をしています。私のモジュールレベルのアクション定義でStruts2はAJAX呼び出しで空のJSONを返します
が、設定は次のようになります。私のStruts.xmlに
<package name="customer" namespace="/" extends="struts-default,json-default">
<action name="getCustomer" method="getCustomerBusiness" class="CustomerAction">
<result type="json"/>
</action>
</package>
私は私のアクションクラスで
<result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
</result-types>
<interceptors>
<interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>
</interceptors>
を持っている:
public class CustomerAction extends ActionSupport implements ServletRequestAware,
ServletResponseAware, ModelDriven {
private List<CustomerBean> cpbeanList;
public List<CustomerBean> getCpbeanList() {
return cpbeanList;
}
public void setCpbeanList(List<CustomerBean> cpbeanList) {
this.cpbeanList = cpbeanList;
}
public String getCustomerBusiness() {
cpbeanList = new ArrayList<CustomerPortfolioBean>();
// jsonData = new LinkedHashMap<String, Object>();
CustomerBean cb1 = new CustomerPortfolioBean();
cb1.setBusinessNm("IBM");
cb1.setBusinessAddr("475 Anton Blvd");
cb1.setBusinessPh("00000000");
cb1.setBusinessCity("Costamesa");
cb1.setBusinessStateCd("CA");
c1.setBusinessZip("92704");
similarly cb2, cb3, cb4.
cpbeanList.add(cb1);
cpbeanList.add(cb2);
cpbeanList.add(cb3);
cpbeanList.add(cb4);
return SUCCESS;
}
}
JSONリクエストhttp://localhost:8080/customer/getCustomer
は私に空の配列を返します{}ファイヤーバグで...私は見ることができます。
また、JQueryでデータテーブルの入力として試しています。このため行がない。
いずれかの助けがありがとうございます。
私は混乱しています。あなたの 'getModel()'はどこですか?なぜ "json"結果型を再定義するのですか? 'getCpbeanList()'が何も返さないのはなぜですか?アクション宣言のパッケージ名はどこですか?私はそれがデフォルトのパッケージにないことを願っています。あなたは春を使っていますか? –
はい私はSpring - Strutsを使用しています。 –
私のパブリックリスト getCpbeanList(){ \t \t return cpbeanList; \t} –