0

smooks (v1.5) を使用して、csv ファイルからレコードの Java Bean コレクションにマップしています。現時点では、CSV レコードごとに 1 つの大きな Java Bean です。

Java Bean にマッピングしたい静的なグローバル アプリケーション データがいくつかあります (つまり、csv レコードにないいくつかのデータ項目)。

現在、呼び出し元の Java クラスで post-smooks 処理を行うことにより、この静的データを Java Bean に追加しています。

ただし、可能であれば、これを smooks で処理できるようにしたいと考えています。smooks フィルタの前にグローバル パラメータのマップを追加し、smooks xml ファイルで各 Java Bean に関連するプロパティを設定できるようにするとよいと考えていました。

これは可能ですか?

編集

実行コンテキストに属性を追加できることがわかりました。

ExecutionContext executionContext = smooks.createExecutionContext();
executionContext.setAttribute("someParam", "someValue");

しかし、smooks 設定でこの属性にアクセスして Java Bean に渡すにはどうすればよいでしょうか?

4

1 に答える 1

0

静的パラメーター用の単純な Bean を作成し、追加しました

ExecutionContext executionContext = smooks.createExecutionContext();

MappingStaticParams staticParams = new MappingStaticParams();
staticParams.setSomeTextParam = "someValue";
BeanId beanId = executionContext.getBeanContext().getBeanId("staticParams");
executionContext.getBeanContext().addBean(beanId, staticParams );

これにより、jb 式を使用してパラメーターをマップできる smooks フィルター構成ファイルのスコープに Bean が配置されます。

<jb:expression property="staticText">staticParams.someTextParam</jb:expression>
于 2013-11-08T15:48:15.100 に答える