значения, извлеченные из базы данных, не отображаются - PullRequest
0 голосов
/ 10 февраля 2011

Я пытаюсь получить значения из таблицы в базе данных postgres и отобразить на странице JSP. Я использую JSTL для получения данных. Значения в каждой ячейке таблицы огромны, т.е. некоторый XML-контент, поэтому я пытаюсь поместить его в текстовое поле в ячейку таблицы, т.е.

   <body>

<sql:setDataSource  driver="org.postgresql.Driver"  
url="jdbc:postgresql://x.x.x.x:5432/postgres"  user="postgres" password="postgres"/>

<sql:query   var="summary" sql="select * from req_resp_summary">
</sql:query>
<br><br><br><br>
<table class="hovertable" align="center">
<h3> Request and Response Summary</h3><br>

<tr>
<th><b>ID</b></th>
<th><b>Name</b></th>
<th><b>Reqest XML</b></th>
<th><b>Respnse XML</b></th>
<th><b>Request TimeStamp</b></th>
<th><b>Responded Time</b></th>
<th><b>Destination</b></th>
<th><b>Status</b></th>
</tr>

<c:forEach var="sum" items="${summary.rows}">
<tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
<c:set var="req_xml" value="${sum.request_xml}"/>
<c:set var="res_xml" value="${sum.response_xml}"/>
<%
String response_xml=(String)pageContext.getAttribute("res_xml");
String request_xml=(String)pageContext.getAttribute("req_xml"); 
%>
<td><c:out value="${sum.request_id}"/></td>
<td><c:out value="${sum.element_name}"/></td>

<!--<td width="20px" height="30px"><c:out value="${sum.request_xml}"/></td>-->

<td><html:textarea property="req_xml"  value="<%= request_xml%>"  readonly="true" rows="4"></html:textarea> </td>
<!--<td style="text-align: justify; "><c:out value="${sum.response_xml}"/></td>-->
<td><html:textarea property="req_xml"  value="<%= request_xml%>"  readonly="true" rows="4"></html:textarea> </td>
<td><c:out value="${sum.timestamp}"/></td>
<td><c:out value="${sum.respond_time}"/></td>
<td><c:out value="${sum.destination}"/></td>
<td><c:out value="${sum.status}"/></td>
</tr>
</c:forEach>
</table>

</body>

Это присутствует в цикле for-each. Проблема в том, что он отображает только строку request_xml, но не строку response_xml. Он отображает одну полную строку таблицы html, а другая является частичной, а остальные не отображаются. Первая строка на странице jsp также содержит строку ответа.

Другое дело, что все значения отображаются, если я использую только тег, но мне нужно, чтобы строка была включена в текстовую область.

Любая помощь с благодарностью. Спасибо

1 Ответ

0 голосов
/ 02 июня 2013

Попробуйте использовать HashMap, чтобы собрать строку и использовать ее для текстовой области.

HashMap x = new HashMap();
HashMap y = new HashMap();


x.add(pageContext.getAttribute("res_xml"));
y.add(pageContext.getAttribute("req_xml"));
...