Как я могу получить заголовок ссылающейся страницы (элемента) из модифицированной версии страницы обратной связи в DSpace?

Как я могу получить название элемента из модифицированной версии страницы обратной связи, как в "Рекомендовать этот элемент" в jspui? Я также надеюсь, что сгенерированный URL-адрес страницы будет похож на 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, но сейчас мне не понятно, чего мне не хватает.

2 ответа

Решение

Вы можете получить полный патч DS-2099 по адресу:

https://github.com/arvoConsultores/DSpace/commit/3e971d70daaa4762a443c89fb7fa6f9e5b8e630d.patch

(СОВЕТ: вы можете добавить ".patch" к коммиту на github для просмотра патча)

Я думаю, что это слишком долго, чтобы оставлять сообщения здесь.

Проверьте 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);

А в аспектах / ViewArtifacts / sitemap.xmap вы должны установить параметр:

<map:transform type="SolicitarCorreccionForm">
<map:parameter name="title" value="{title}" />
...

Получите на SendSolicitarCorreccionAction и отправьте по электронной почте, чтобы добавить параметры к почте, как:

String title= request.getParameter("title");
email.addArgument(title);    // Titulo
...

Вы хотели бы изменить URL-адрес с

<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;

Я надеюсь, что это поможет.

Пытаться

  String handle="1234/1234";

  context=new Context(); // Or reuse the Context:

  dso = HandleManager.resolveToObject(context,handle);

  if (dso instanceof Item){

       DCValue[] titles= dso.getMetadata("dc", "contributor", "author",null); 

       // use titles
  }
Другие вопросы по тегам