Параметр передачи jsp insertAttribute в плитки

я ненавижу эту плохую документацию... я теряю так много времени на гугление, как работают базовые вещи... хорошо, вот моя проблема:

У меня есть список объектов, которые повторяются в jsp... на каждой итерации я хочу вставить "sub-jsp" и передать текущий объект этому jsp....

определение плитки: (версия 3.0.5)

<definition name="projectAdmin/execAproject" extends="defaultTemplate">  
       <put-attribute name="title" value="Projekt-Design" />  
       <put-attribute name="body" >
        <definition template="/WEB-INF/projectAdmin/execAproject.jsp">
            <put-attribute cascade="true" name="subCustomItem_form" value="/WEB-INF/projectAdmin/subCustomItem_form.jsp" />  
        </definition>
       </put-attribute>
   </definition>

execAproject.jsp

<c:forEach items="${items}" var="item" varStatus="theCount">
    <tiles:insertAttribute name="subCustomItem_form" >
        <tiles:putAttribute name="super_name" value="bla" />
    </tiles:insertAttribute>
</c:forEach>

subCustomItem_form.jsp

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <div class="custom_item_form">
        Custom-Item ${super_name}
    </div>

Как видите, я повторяю список элементов... и на каждом шаге итерации «включается» «subCustomItem_form.jsp». Я также пытался передать переменную/параметр «super_name», но это не сработало.

Проблема

Проблема в том, что переменная "super_name" никогда не отображается в "subCustomItem_form.jsp". У меня нет никаких ошибок или отладочных сообщений или чего-то в этом роде. JSP "subCustomItem_form.jsp" отображается, но не переменная.

Вопрос

Как передать переменную? В данном случае переменная "super_name". (позже я хочу передать элемент-объект.

Спасибо за помощь!

EDIT Я немного решил проблему... Хорошо, теперь я смог получить доступ к переменной "super_name" в jsp "subCustomItem_form.jsp". Поэтому я только меняю способ доступа к этой переменной:

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
    <div class="custom_item_form">
        Custom-Item <tiles:getAsString name="super_name"/>
    </div>

Если я правильно понимаю проблему/решение, то моя ошибка заключалась в том, что у меня есть переменная в контексте "jsp" или pagecontext, но не как переменная JSTL... но в этот момент я делаю некоторые вещи, такие как < /em> Я "изменил" переменную с jsp на JSTL-"контекст"... так что я должен получить доступ к переменной в JSTL-способе... Я знаю, что мое описание не очень хорошо сформулировано, но я надеюсь, что вы может меня понять... Таким образом, я смог передать строковую переменную. Но я все еще не могу пройти или получить доступ к объекту.

Теперь текущая Проблема/Вопрос Как я могу передать объект и получить доступ к этому объекту таким образом "${object.variable} или мне нужно написать объект в контексте-объекте? Возможно ли получить доступ к объекту в JSTL-способе?

Я надеюсь, что вы можете помочь мне!

V


person Der_V    schedule 07.12.2016    source источник
comment
В качестве предложения вы можете переместить найденное решение в раздел ответов. Вам разрешено отвечать самостоятельно, если вы нашли проблему самостоятельно, если никто другой не помог, вы можете принять свой собственный ответ. Перемещение ответа в раздел ответов облегчит чтение будущим пользователям.   -  person Lexi    schedule 08.12.2016


Ответы (1)


Решение

Хорошо, наконец-то я это сделал... Я пытался найти способ только с JSP без использования JSTL.... Там я нашел следующую ссылку: Передача параметров в другой файл JSP с использованием тега ‹jsp:include› Существует описание решения, поэтому я изменил код "execAproject.jsp" следующим образом:

<c:if test="${item.projStepItem.item_type eq 'customItem'}">
    <div>
        <c:set var="super_name" value="${item}" scope="request"/>
        <tiles:insertAttribute name="subCustomItem_form" />
    </div>
</c:if>

Хорошо, если я правильно понимаю решение, устанавливает ли строка "c: set" переменную в области запроса, чтобы я мог получить доступ к переменной в sub-jsp, как к переменной, которая предоставляется бэкэндом по запросу. Вот почему также важно, чтобы переменная в области запроса. Документация всего этого, на мой взгляд, довольно плохая, поэтому я надеюсь, что это поможет любому, у кого есть похожая проблема.

Хорошего дня.

V

person Der_V    schedule 12.12.2016