smooks csv to Java Bean - 设置全局参数和访问



我正在使用smooks(v1.5)从csv文件映射到java bean集合以获取记录。目前,每个 CSV 记录都有 1 个大 java bean。

我有一些静态全局应用程序数据,我想将其映射到我的 java bean 中(即一些不在 csv 记录中的数据项)。

目前,我正在通过在我的调用 java 类中进行一些后 smooks 处理来将此静态数据添加到我的 java bean 中。

但是,我希望能够在 smooks 中处理这个问题,如果可能的话。 认为在 smooks 过滤器之前添加一个全局参数映射会很好,然后让我的 smooks xml 文件能够在每个 java Bean 上设置相关属性。

这可能吗?

编辑

我发现我可以向我的执行上下文添加属性:

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

但是如何在我的 smooks 配置中访问此属性以传递到我的 java bean 中呢?

我为我的静态参数创建了一个简单的 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 filter 配置文件的范围内,该文件可以使用 jb 表达式来映射参数:

<jb:expression property="staticText">staticParams.someTextParam</jb:expression>

最新更新