2011-05-12 50 views

回答

11

整蠱使用fn:substring()會做

<c:forEach var="i" begin="0" end="${fn:length(str)}" step="1"> 
    <c:out value="${fn:substring(str, i, i + 1)}" />  
</c:forEach> 
+0

+1。不錯的一個....... :-p – 2011-05-12 12:13:15

+0

@哈里謝謝:) – 2011-05-12 12:13:54

+0

不錯 - 不知道有什麼功能可用 – 2011-05-12 12:33:06

0

我認爲你不能用JSTL的forEach做到這一點。您需要編寫自己的標籤或EL功能。下面是一個示例代碼,你如何編寫自定義標籤: http://www.java2s.com/Tutorial/Java/0360__JSP/CustomTagSupport.htm

+0

爲什麼不呢? http://download.oracle.com/docs/cd/E17802_01/products/products/jsp/jstl/1.1/docs/tlddocs/fn/tld-summary.html 我在這裏看到一個長度函數和一個子字符串函數 – stivlo 2011-05-12 12:05:24

+0

fn :子字符串/ FN:長度仍然是EL功能! – 2011-05-12 12:06:32

+0

我認爲將scriptlet與JSTL混合是一種不好的做法,而EL應該是優雅的。你的意思是EL不是JSTL的一部分嗎? – stivlo 2011-05-12 12:10:58

1

遲到了,但EL 2.2允許實例方法調用(更多的在這裏: https://stackoverflow.com/a/7122669/2047962)。這意味着,你可以通過幾個字符縮短Jigar喬希的回答是:

<c:forEach var="i" begin="0" end="${fn:length(str)}" step="1"> 
    <c:out value="${str.charAt(i)}" />  
</c:forEach> 

我只建議這一點,因爲它是一個小更明顯你的代碼做什麼。

相關問題