我正在使用smooks(v1.5)从csv文件映射到java bean集合以获取记录。目前,它是每个CSV记录的1大java bean。
我有一些静态全局应用程序数据,我希望映射到我的java bean(即一些不在csv记录中的数据项)。
目前,我通过在我的调用java类中进行一些后smink处理,将这些静态数据添加到我的java bean中。
但是,如果可能的话,我希望能够在smooks中处理这个问题。认为在smooks过滤器之前添加全局参数映射会很好,然后让我的smooks xml文件能够在每个java bean上设置相关属性。
这可能吗?
修改
我发现我可以在执行上下文中添加属性:
ExecutionContext executionContext = smooks.createExecutionContext();
executionContext.setAttribute("someParam", "someValue");
但是如何在smooks配置中访问此属性以传递到我的java bean?
答案 0 :(得分: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>