大家好我有一個在jsp上顯示爲[MCA, MCB, COMM, DMISA]
的數組列表。需要ArrayList打印時沒有「方括號」
進出口調用它的JSP:
<td>${bean.CodesNames}</td>
在豆獲取方法爲:
public void setCodesNames(ArrayList<String> CodesNames)
{
this.CodesNames = CodesNames;
}
我怎樣才能去掉括號顯示這個?
大家好我有一個在jsp上顯示爲[MCA, MCB, COMM, DMISA]
的數組列表。需要ArrayList打印時沒有「方括號」
進出口調用它的JSP:
<td>${bean.CodesNames}</td>
在豆獲取方法爲:
public void setCodesNames(ArrayList<String> CodesNames)
{
this.CodesNames = CodesNames;
}
我怎樣才能去掉括號顯示這個?
您得到括號,因爲ArrayList#toString()
被隱式調用,以便將列表變成可打印的字符串。您可以自己打印列表中JSP解決這個問題:
<c:forEach items="${CodesNames}" var="item" varStatus="status">
${item}<c:if test="${!status.last}">,</c:if>
</c:forEach>
或用豆的getter比返回一個字符串:
public String getCodesNamesAsString()
{
// using a Guava Joiner
return Joiner.on(",").useForNull("null").join(getCodesNames());
}
(見Joiner
JavaDocs如果你不熟悉的番石榴。 )
在jsp上迭代的過程非常快捷,非常感謝! –
您需要迭代它。不要依賴toString
。
<td>
<c:forEach var="name" varStatus="stat" items="${bean.codesNames}">
<c:out value="${name}"/>
<c:if test="${stat.index < fn:length(bean.codesNames) - 1}">
<c:out value=","/>
</c:if>
</c:forEach>
</td>
PS:<c:out/>
在這裏是可選的。
您可以實現吸氣劑會使格式化你需要
public String getCodesNamesFormatted()
{
// format as you like
}
然後用它
<td>${bean.codesNamesFormatted}</td>
添加另一個getter方法:
public void getCodesNamesFormatted()
{
StringBuilder sb = new StringBuilder();
for (String codeName : CodesNames) sb.append(codeName).append(',');
return sb.deleteCharAt(sb.length());
}
而且從JSP調用它:
<td>${bean.codesNamesFormatted}</td>
看起來不錯。要試一試 –
該字符串([MCA,MCB,COMM,DMISA])由類Array的toString()方法生成。 您需要創建自己的代碼,它將迭代數組元素並逐個打印它們。 或者當然你可以使用replaceAll的髒方式。對於這兩種方式請參見下面的代碼:
1)
<% for(String arrayItem : myArray) { %>
<%= arrayItem %>,
<%}%>
2)
<%=myArray.toString().replaceAll("\[|\]","")%>
感謝輸入bro ...我希望我可以在這份工作中使用scriptlets ...大聲笑 –
如果你不是絕對必須使用scriptlets。 http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files –
您顯示的代碼實際上是二傳手,而不是吸氣。 –