我如何从修改后的反馈页面中获取项目的标题,就像在jspui中“推荐此项目”一样?我也希望生成页面的结果网址,例如http://example.com/feedback?handle=123456789/123。我已经在上一篇文章中的评论中提出了这个问题,但是我不知道如何使用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,但现在我无法找出我所缺少的内容。
您可以在以下位置获得DS-2099的完整补丁:
https://github.com/arvoConsultores/DSpace/commit/3e971d70daaa4762a443c89fb7fa6f9e5b8e630d.patch
(提示:您可以在github的提交中添加“ .patch”以查看补丁)
我认为在这里发布太久了。
检查SolicitarCorreccionForm以显示标题和想要的内容,使用其他响应从句柄获取数据,而不是:
feedback.addPara(T_para1.parameterize(parameters.getParameter("handle","unknown")));
你应该做:
String handle=parameters.getParameter("handle","unknown"); // context=new Context(); // Context exist in a form: DSpaceOBject dso = HandleManager.resolveToObject(context,handle); if (dso instanceof Item){ Item item=((Item)dso); DCValue[] titles= item.getMetadata("dc", "contributor", "author",null); feedback.addPara(titles[0].value); // check for nulls or multiple values; }
要将标题发送到邮件类别,您应该执行以下操作:
feedback.addHidden("title").setValue(titles[0].value);
并且在Aspects / ViewArtifacts / sitemap.xmap中,您应该设置参数:
<map:transform type="SolicitarCorreccionForm"> <map:parameter name="title" value="{title}" /> ...
获取SendSolicitarCorreccionAction并发送到电子邮件,以将参数添加到邮件中,例如:
String title= request.getParameter("title"); email.addArgument(title); // Titulo ...
您想更改网址
<map:match pattern="solicitarCorreccion/**">
想要什么
PD-我忘了提要添加SolicitarCorreccionForm的导入:
import org.dspace.content.DCValue; import org.dspace.content.DSpaceObject; import org.dspace.content.Item; import org.dspace.handle.HandleManager;
希望对您有所帮助。