大家好,我有一个arraylist在jsp上显示为[MCA, MCB, COMM, DMISA]
。
我在jsp上调用它:
<td>${bean.CodesNames}</td>
在豆中,吸气剂是:
public void setCodesNames(ArrayList<String> CodesNames)
{
this.CodesNames = CodesNames;
}
如何在没有括号的情况下显示此内容?
答案 0 :(得分:6)
您可以隐式调用ArrayList#toString()
来获取括号,以便将列表转换为可打印的字符串。您可以通过在JSP中自己打印列表来解决此问题:
<c:forEach items="${CodesNames}" var="item" varStatus="status">
${item}<c:if test="${!status.last}">,</c:if>
</c:forEach>
或使用bean getter而不是返回一个字符串:
public String getCodesNamesAsString()
{
// using a Guava Joiner
return Joiner.on(",").useForNull("null").join(getCodesNames());
}
(如果您不熟悉番石榴,请参阅Joiner
JavaDocs。)
答案 1 :(得分:2)
添加另一个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>
答案 2 :(得分:1)
你需要迭代它。不要依赖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/>
是可选的。
答案 3 :(得分:1)
您可以实现使您需要格式化的getter
public String getCodesNamesFormatted()
{
// format as you like
}
然后使用它
<td>${bean.codesNamesFormatted}</td>
答案 4 :(得分:1)
此字符串([MCA,MCB,COMM,DMISA])由类Array的方法toString()生成。 您需要创建自己的代码,它将迭代数组元素并逐个打印它们。 或者你当然可以使用脏方式替换所有。请参阅以下代码,了解两种方式:
1)
<% for( String arrayItem : myArray ) { %>
<%= arrayItem %>,
<%}%>
2)
<%=myArray.toString().replaceAll("\[|\]","")%>