2016-12-07 70 views
0

我恨壞文檔......我在谷歌上搜索如何基本的東西,失去了這麼多時間找份工作......好吧,這裏是我的問題:JSP insertAttribute通參數瓷磚

我有對象的列表,其在JSP被迭代...在每次迭代我想插入一個「子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」 顯示。我沒有任何錯誤或debug-msg或類似的東西。顯示jsp「subCustomItem_form.jsp」,但不顯示變量。

問題

如何傳遞變量?在這種情況下,變量「super_name」。 (後來我想通過項目對象。

感謝的幫忙!

編輯 我解決了這個問題有點...好了,現在我是能夠訪問到變量「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變量......但在那一點上,我做了一些像我把變量從jsp「改變」爲JSTL-「context」...所以我必須以JSTL方式訪問變量...我知道我的描述不太好公式化,但我希望你能瞭解我......通過這種方式,我能夠傳遞一個字符串變量。但是我仍然無法傳遞或訪問一個對象。

現在目前的問題/疑問 我如何通過一個對象,並以這種方式訪問​​這個對象「$ {} object.variable或做我必須寫在一個上下文對象的對象?是否有可能訪問對象在JSTL路?

我希望你能幫幫我!

V

+0

作爲一個建議,您可以將您找到的解決方案移動到答案部分。如果沒有其他人幫助你接受自己的自我回答,你可以自己回答問題。將答案移到答案部分將使未來的用戶更容易閱讀。 – Lexi

回答

0

解決方案

好的,我終於完成了...我試圖找到一種方式,只使用JSP而不使用JSTL ....還有我發現下面的鏈接:Passing parameters to another JSP file using <jsp:include> tag 有溶液descriped,使我改變的「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> 

確定如果我unterstand溶液正確地做了「C:設置「-line設置請求範圍中的變量,這樣我就可以訪問子jsp中的變量,就像後端在請求時給出的變量一樣。這就是爲什麼它對請求範圍中的變量也很重要。 在我看來,所有這些文檔都相當糟糕,所以我希望能幫助任何有類似問題的人。

祝您有愉快的一天。

V