7

を使用してstruts2-json-plugin-2.2.3.jarいます。filterListそして、次のようにクラスのプロパティをシリアル化しようとしています:

struts.xmlコード

<action name="jsonUserFilterListAction"  class="com.my.fitnessb.actions.UserArticlesAction" method="filterList">
        <result  name="success" type="json">
            <param name="includeProperties">filterList</param>
        </result>
 </action>

アクションクラス

public class UserArticlesAction extends ActionSupport implements SessionAware, ServletRequestAware {

  private List<FilterType> filterList;
  HttpServletRequest request;

  public String filterList() {
    filterList = new ArrayList<FilterType>();
    filterList.add(new FilterType(10, "Latest Articles"));
    filterList.add(new FilterType(1, "Trending Articles"));
    filterList.add(new FilterType(2, "Top Rated Articles"));
    filterList.add(new FilterType(3, "Most Viewd Atricles"));
    filterList.add(new FilterType(4, "All Atricles"));
    return SUCCESS;
  }
  //setter & getter of filterList
}

しかし、FilterType クラスのこのプロパティを取得できません。

4

4 に答える 4

7

あなたのフィールドにFilterType名前が付けられiddesc

試す

<param name="includeProperties">
filterList\[\d+\]\.id,
filterList\[\d+\]\.desc
</param>
于 2013-01-21T07:58:30.790 に答える
3

Struts2-json プラグインは、アクション クラスのすべてのアクション属性をシリアル化します。

struts2-json-plugin を使用して直面した問題です。plugin-docはパラメーターの実際の 例を示していincludePropertiesますが、私にとってはうまくいきませんでしたし、多くの試行とグーグルの後でもうまくいきませんでした。excludePropertiesそのため、シリアル化するものを指定するのではなく、不要なコンテンツをシリアル化から削除するために使用する必要がありました。

于 2013-01-21T07:21:45.590 に答える
0

アノテーションフレーバーを好む場合

@ParentPackage("json-default")
@Namespace("/")
@ResultPath(value = "/")
@Results({  @Result(name="firstDir",type="json"
,params = {"includeProperties","fileList\\[\\d+\\]"}
) })

fileList = new ArrayList<String>();
        for (File img : folder.listFiles()) {
            fileList.add(img.getName());
        }
return "firstDir"
于 2015-03-03T08:46:59.837 に答える
0

これを試すことができます:

<param name="includeProperties">
    filterList.*
</param>
于 2019-02-14T12:07:07.680 に答える