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 );

这将 bean 置于我的 smooks 过滤器配置文件的范围内,该文件可以使用 jb 表达式来映射参数:

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