【发布时间】:2014-09-26 17:11:13
【问题描述】:
如何从修改后的反馈页面中获取项目的标题,就像在 jspui 中的“推荐这个项目”中一样?我还希望生成页面的结果 url 就像http://example.com/feedback?handle=123456789/123。我在之前的帖子中通过comment 提出了这个问题,但我不知道如何使用 HandleManager。我曾多次尝试使用 itemRequestForm 中的部分代码,但总是出现空指针错误。
DSpaceObject dso = HandleUtil.obtainHandle(objectModel);
if (!(dso instanceof Item)) {
return;
}
Request request = ObjectModelHelper.getRequest(objectModel);
boolean firstVisit=Boolean.valueOf(request.getParameter("firstVisit"));
Item item = (Item) dso;
我也尝试查看 /ViewArtifacts/sitemap.xmap,但现在我无法弄清楚我缺少什么。
【问题讨论】:
-
哪一行代码给你一个 NullPointerException?乍一看,代码看起来很合理,但它被断章取义,因此很难确定哪一行(或几行)没有正常工作。
-
另外,你要修改什么类?您在上面借用的代码看起来是一个“Action”类(扩展“AbstractAction”的一个),例如SendItemRequestAction。如果您尝试修改FeedbackForm,则此代码将不起作用,因为“objectModel”映射不存在。
-
忽略我之前的评论。我现在注意到FeedbackForm 扩展了AbstractDSpaceTransformer,它定义了“objectModel”映射。因此,您应该能够在 FeedbackForm 中使用此代码。可能我们只需要更多关于 NullPointerException 发生位置的信息。
-
您好@tim-donohue,我实际上是从项目请求功能中借用了上面的代码,并尝试将其与反馈表集成。我的目标与DS-2099 非常相似。请参阅下面我对 Adan 回答的评论。
标签: java apache-cocoon dspace