如何将字符串数组从jsp发送到servlet类

时间:2012-11-23 10:50:32

标签: java jsp servlets jstl

我想知道是否可以从jsp向servlet类发送字符串数组。实际上这种情况是我从servlet向jsp发送一个字符串数组,然后我想将这个字符串数组发送到另一个servlet类。例如,

   <table border="1">
     <tr>
        <th>Target Names</th>
    </tr>
        <c:forEach items="${targetarray}" var="drugtarget">
        <tr>
        <td>${fn:escapeXml(drugtarget)}</td>
        </tr>
        </c:forEach>
</table>

这里,targetarray是我的字符串数组。我现在需要将它发送到另一个servlet类。或者还有另一种方法吗?谢谢。

1 个答案:

答案 0 :(得分:1)

HTML只能包含字符序列。 HTTP请求参数只能表示字符序列。你绝对不能传递Java对象。您需要将它们转换为首先基于指定格式唯一表示Java对象的字符序列,以便在服务器端检索它之后将其转换回Java对象。字符序列在Java中由String类表示。

因此,基本上,您需要先将String[]转换为String,然后再将其打印到HTML中。您可以使用HTML <input type="hidden">来表示隐藏的请求参数。在将其作为HTTP请求参数获取后,您需要将提交的String值转换回String[]。最简单的是,您可以选择逗号分隔值(CSV)格式为String表示,也可以选择XML或JSON。

一个完全不同的替代方案,确定Java对象是否相当复杂(例如,Javabean,可能具有更多嵌套的Javabean属性等)是沿着唯一且自动生成的密钥存储对象(例如java.util.UUID )在会议中。然后你只需要将该唯一密钥作为请求参数传递,以便随后可以根据密钥从会话中获取(删除)。