簡體   English   中英

JSTL適用於循環語法

[英]JSTL proper for loop syntax

我對JSTL和Java一般都是新手。 是否有更好的方法來格式化這個for循環,似乎我可以將它分解一點以使其更清潔。 理想情況下,我不想逃避字符串,但不確定如何或是否有更好的方法? 我知道在JSTL中聲明變量時,您可以使用c:標記內的屬性執行類似下面的操作。 你可以用for循環做類似的事嗎?

<c:set var="childNode"><%= properties.get("childrenNode", "") %></c:set>

<c:forEach items="<%=childResults.getPath((Child)pageContext.getAttribute(\"childPage\"), currentPage, new showChildrenFilter())%>" var="segment" varStatus="status">
   ${displaySomething}
</c:forEach>

任何幫助是極大的贊賞!

你的JSP上有很多java代碼(scriptlets)。 使用JSTL可以幫助您擺脫使用scriptlet,因此可以幫助您將代碼邏輯與演示文稿分開,這樣可以提高可維護性。 如您所見,您的頁面上有一些簡單的java代碼。

這就是我如何使用JSTL for循環。 通常在服務器端,我將在請求屬性中准確設置我需要的內容。 所以這可能取決於你的工具/框架,但通常你可以以某種方式訪問​​HttpServletRequest。 僅使用HttpServlet的doGet()方法作為示例

// this is in my servlet
public void doGet(HttpServletRequest req, HttpServletResponse resp) 
{
   Collection<Circle> circles = // some logic here 
   req.setAttribute("circles", circles);
}

然后在JSP上,我將循環遍歷我設置的任何內容

<c:forEach items="${circles}" var="circle">
   Radius: ${circle.radius}, Color: ${circle.color} <br/>
</c:forEach>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM