2014-04-10 15 views
1

我正在開發一個春天MVC3應用程序,並遇到以下情況:JSP傳遞數組作爲參數,增加了方括號中第一和最後一個元素

  1. 我通過ModelAndView對象2項返回: 工作=的ArrayList 部門=的ArrayList到的Page1.jsp

  2. 當我在第一頁打印的對象,我得到:

爲所有的人:

${jobs} -> [ADMIN, CLERK, DEPARTMENT_MANANGER, DIVISION_MANAGER] 

並單獨我讓他們很好,每一個上線

<c:forEach items="${jobs}" var="job"> 
    <h6>${job}</h6> 
</c:forEach> 

問題是,當我有page2.jsp,並把這些數組作爲參數。

<jsp:include page="page2.jsp" > 
    <jsp:param name="jobs" value="${jobs}" /> 
    <jsp:param name="departments" value="${departments}" /> 
</jsp:include> 

並嘗試再次打印這些元素我在第一個和最後一個元素中獲取括號。 (我和param.jobs正確訪問的陣列。)

爲所有這些:[管理員,祕書,DEPARTMENT_MANANGER,DIVISION_MANAGER] 每一個單獨:

[ADMIN 
CLERK 
DEPARTMENT_MANANGER 
DIVISION_MANAGER] 

是否有人知道爲什麼會這樣發生,我怎麼能避免這種情況?

後來編輯:

此外,當我通過它應該是在page2.jsp對象,並嘗試打印他們的名字($ dept.name,這在的Page1.jsp正常工作)的部門重複我得到:

javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String 

這是一個清楚的指標,它們作爲字符串傳遞。

如何將它們作爲page1.jsp中的Objects?

謝謝:)


我找到某種解決辦法的..

<c:set var="allJobs" value="${jobs}" scope="request" /> 

,然後我可以訪問它們爲$ {} allJobs

不知道這是最正統的方式雖然..

+0

sry這是我的錯誤在我的答案。我張貼沒有格式。很高興你解決它:) –

回答

1

您只能傳遞字符串作爲請求參數,但您可以設置一個ny作爲請求屬性的對象。請求範圍(不是頁面範圍)bean也應該工作。

1

嘗試使用JSTL設置值,

<c:set var="type1" value="${jobs}" /> 

    <jsp:include page="index.html"> 
     <jsp:param name="jobs" value="${type1}" /> 
    </jsp:include> 

希望這有助於!

相關問題