【发布时间】:2013-01-27 08:54:52
【问题描述】:
基本上是使用jsp:fn:split构造一个数组作为参数传递给bean。
从以下 XML 的警告/警告元素中解析字符串:
<?xml version="1.0" encoding="UTF-8"?>
<task><caution>fs43sd</caution>
<title>aaaa<warning>fsdfas</warning></title>
<warning>asddas</warning><sbsb><warning>fsdasds</warning></sbsb>
<aaaaa>
<bbb><caution>fsdfsd243sd</caution>
<warning>fsdfsd</warning>
</bbb>
</aaaaa>
</task>
并使用以下JSP构造字符串数组并将其参数化为bean:
<c:set var="wids">
<x:forEach select="$output/descendant::warning" var="warning">
<x:out select="$warning" />,</x:forEach></c:set>
<c:set var="cids">
<x:forEach select="$output/descendant::caution" var="caution">
<x:out select="$caution" />,</x:forEach></c:set>
<jsp:useBean id="wc" class="main.beans.WCBean">
<jsp:setProperty name="wc" property="wids" value="${fn:split(wids, ',')}"/>
<jsp:setProperty name="wc" property="cids" value="${fn:split(cids, ',')}"/>
</jsp:useBean>
当我使用<c:forEach items="${fn:split(wids, ',')}" var="entry">${entry},</c:forEach> 打印构造数组时:
fsdfas,
asddas,
fsdasds,
fsdfsd,
请注意,换行符会附加到每个值的末尾。有什么想法吗?
试图删除选择之前的换行符并且它消失了。猜猜 c:set 把里面的不是 jsp 标记的东西当作字符串文字。
【问题讨论】: