在 DSpace 6x 中获取 ItemRequestForm 中的其他元数据

Getting other metadata in ItemRequestForm in DSpace 6x

在 DSpace 中单击受限比特流将显示请求表单。默认情况下,表单显示项目的标题。在版本 5x 中,我设法显示其他元数据而不是标题(例如引文)。

我用来显示的代码:

    Metadatum[] titleDC = item.getMetadata("dc", "title", null, Item.ANY);
    Metadatum[] citationDC = item.getMetadata("dc", "identifier", "citation", Item.ANY);
    String document = "";
    if (citationDC != null && citationDC.length > 0) {
        document = citationDC[0].value;
    } else {
        if (titleDC != null && titleDC.length > 0)
            document = titleDC[0].value;
    }
    itemRequest.addPara(document);

我无法在 6x 版中使用此代码,因为源代码发生了重大变化。以下是 DSpace 6x 中显示项目标题的默认代码:

String titleDC = item.getName();
if (titleDC != null && titleDC.length() > 0)
    itemRequest.addPara(titleDC);

版本6好像没有item.getMetadata,我的问题是如何翻译版本5x的代码

Metadatum[] citationDC = item.getMetadata("dc", "identifier", "citation", Item.ANY);

进入版本 6?

查看 DSpace 6x 代码,我设法让其他元数据显示(例如 dc.identifier.citation),而不是 ItemRequestForm.java 中的项目标题。添加到导入 import org.dspace.content.service.ItemService;

private final transient ItemService itemService
    = ContentServiceFactory.getInstance().getItemService();

显示dc.identifier.citation

String citationDC = itemService.getMetadataFirstValue(item, "dc", "identifier", "citation", Item.ANY);
String titleDC = item.getName();
String document = "";
    if (citationDC != null && citationDC.length() > 0) {
        document = citationDC;
    } else {
        if (titleDC != null && titleDC.length() > 0)
        document = titleDC;
    }

itemRequest.addPara(document);

我添加了一个测试作为备用,以防 dc.identifier.citation 不存在。