我们需要创建包含模型数据某些部分的pdf或doc文档。每个模型对象包含单个值,加上很少的相关数据集合,它们具有不同的长度。现在,可以禁用模型数据的某些部分,以便它们不应包含在最终文档中。我需要一种聪明的方法来仅使用模型数据的选定部分来创建文档,而且我不会像以下那样陷入混乱:
if (DATA_TITLE is selected)
add DATA_TITLE to document
if (DATA_AUTHOR is selected)
add DATA_TITLE to document
etc..
如何以优雅的方式避免这种情况?
另一件事:目前我想以“编程方式”创建文档,例如使用Apache POI lib。但是,也许还有其他方法,我可以使用文档模板并用EL表达式填充数据,从而使用带有模板的$ {data.author}字段。但是,如何管理这样一个事实,即并非所有数据元素都可以选择用于文档导出,而且相关数据的集合可能具有不同的长度。
我需要你宝贵的知识:)。
答案 0 :(得分:2)
如果您不想以编程方式执行此操作,则可以使用XSL-FO转换。
我仍然推荐iText。
答案 1 :(得分:1)
要回答您的第一个问题,我会使用Observer设计模式仅在以受编程方式更改受影响的字段时更新文档模型。
对于第二个问题,如果您将文档模型与观察者一起使用,则只需为字段创建默认实现,只需通过编码到观察者中的事件进行更改即可。
查看模式:Observer Pattern