2011-09-21 5 views
5

私はStruts 2をjsonプラグインと一緒に使用していますが、struts.xmlファイルのプロパティマッピングは一般的にイライラしていますが、Struts 2のマッププロパティを指定する方法JSON Plugin

私が予想した結果を与えるためにincludePropertiesを設定できないケースが出てきました。

よく私はこれがうまく機能

^itemList\[\d+\]\.id, 
^itemList\[\d+\]\.name 
.... 

の構成式を使用しています。

私は地図ではないリスト(またはリストのメンバーの子だマップ)からデータを返すしたいと思います。この場合

*を使用する場合は、全体マップが正しくプリントアウトされますが、Iマップ要素のすべてのデータを必要としないでください。

^itemList\[\d+\]\map\.* 

全体マップは、私はいくつかの異なるフォーマットを試してみました

をreturndされており、それらのどれも結果が得られていません。

^itemList\[\d+\]\map\[\d+\]\.id 
^itemList\[\d+\]\map\[\d+\]\.name 

何も

誰でもマップの内容を制限するための構文を持つ任意の運を持っていたマッププロパティで返されませんか?

おかげ -Scott

答えて

0

1)あなたの正規表現は疑わしいです。 "^ itemList [\ d +] \ map [\ d +]。id"という表現では、+ dはもう1桁の数字を指しているので、マップはキーとして数字を持つ必要があります。これがあなたが望むものでなければ、おそらく '。+'がより適切です(任意の文字の1つ以上)。

2)MapをLinkedHashMapに変換し、それをリストとして扱います。 (これはテストしていないとうまくいかないかもしれません)

+0

私は数式を間違えてしまいました。しかしあなたは正しいです+ dは数字を探しています。 マップの文字列キーを表現するために、他の式の繰り返しを数回試しましたが、何も試みませんでした。 マップでデータを表現するためのオブジェクトを作成しましたが、これは最も機能的なアプローチでした。それは追加のクラスを必要とし、アプリケーションの別のポイントに設定の一部を移動しましたが、私の目的のために最良の結果を生み出しました。 – Scott

1

「d」は整数としてマップすることはできません。 これを試してください^itemList\..*$

関連する問題