如何在一行后的TextArea行中显示我的列表,没有额外的空格。即:
this
that
the
other
这是我的尝试:
<div class="text">
<label for="output_string">Output:</label> `
<textarea rows="10" cols="20">
<c:forEach var="x" items="${messagelist}">${x}</c:forEach>
</textarea>
</div>
答案 0 :(得分:1)
这是一个猜测(我会在一个页面中尝试一下):
<c:forEach var='x' items='${messagelist}'><c:out value='${x}\r\n'/></c:forEach>
编辑 - 这似乎根本不起作用。但是,对我来说,添加如下消息目录条目的工作是什么:
linebreak={0}\r\n
然后您可以使用<fmt:message key="linebreak"><fmt:param value="${x}"/></fmt:message>
生成以换行符终止的字符串。
请注意,JSP会根据<c:forEach>
之前的.jsp源文件中的缩进在第一个条目之前放置空格,因此如果您不想要,则必须在左边排列所有内容这一点。
如果我不得不这么做,我会写一个我自己的EL附加功能来回显一个字符串,后跟CRLF。
编辑 - 如果你想写一个EL插件,你需要两件事:
public static
方法。我为我的大多数人开了一个名为“ELFunctions”的课程。你可以任意方式安排它们。所以你会在某个类中写一个像这样的小函数:
public static String linebreak(final String msg) {
return msg + "\r\n";
}
然后你的“.tld”文件看起来像这样(假设它是你唯一得到的;如果你有一个现有的“.tld”文件,只需添加条款):
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0">
<description>Your Favorite Description</description>
<display-name>Make Something Up</display-name>
<tlib-version>4.0</tlib-version>
<short-name>whatever</short-name>
<uri>http://yourdomain.com/tld/whatever</uri>
<function>
<description>
Return a string augmented with trailing line break (CR - LF pair)
</description>
<name>linebreak</name>
<function-class>your.package.name.YourClass</function-class>
<function-signature>
java.lang.String linebreak(java.lang.String)
</function-signature>
</function>
(男孩,XML太烦人了。)现在你可能已经有了一个小文件,可以为你的页面提供taglib(至少为<c:...>
标签)。在那里,或在任何页面的顶部,添加如下所示的行:
<%@ taglib prefix="whatever" uri='http://yourdomain.com/tld/tango' %>
我认为 JSP运行时通过查看WEB-INF子树和WEB-INF / lib中的.jar文件来搜索“.tld”文件,并通过“uri”进行匹配串。无论如何,一旦你完成了,你可以在JSP文件中说:
<c:forEach var='x' items='${messagelist}'>${whatever:linebreak(x)}</c:forEach>
它会调用你的功能。
答案 1 :(得分:0)
<c:set var="xv"></c:set>
<c:forEach items="${messagelist}" var="x">
<c:if test="${not empty x}">
<c:choose>
<c:when test="${idx.first}"><c:set var="xv" value="${x}"></c:set></c:when>
<c:otherwise><c:set var="xv" value="${xv},${x}"></c:set></c:otherwise>
</c:choose>
</c:if>
</c:forEach>
<textarea cols="45" rows="5">${xv}</textarea>