java - 将 StringArray 的值从 java 类打印到 JSP 中

标签 java jsp data-structures

我有一个表单类,其中有一个字符串数组。我正在设置字符串数组的值。我需要在 JSP 页面中一一打印这个数组值。我写的代码是:

paxList = getPaxList(id);

List<String> passengerName = new ArrayList<String>();
List<Double> passengerAge = new ArrayList<Double>();

for(int i=0; i < paxList.size(); i++){
    passengerName.add(paxList.get(i).getPassengerName());
    passengerAge.add(paxList.get(i).getPassengerAge());
}

bookingsForm.setPassengerName(passengerName.toArray(new String[paxList.size()]));
bookingsForm.setPassengerAge(passengerAge.toArray(new Double[paxList.size()]));

现在我需要打印 PassengerName 中的值。

我在我的 JSP 页面中尝试过这样的操作

<logic:iterate id="currentPassName" property="passengerName" >
    <bean:write name="currentPassName" />
</logic:iterate>

但这对我不起作用。有人可以指导我吗?

最佳答案

您不应将乘客列表分为姓名和年龄两个列表。这就是让事情变得困难的原因。只需将 paxList 直接存储到您的表单中即可。

完成此操作后,请帮自己一个忙,使用 JSTL 而不是已弃用的 struts 逻辑和 bean 标记:

<c:forEach items="${bookingsForm.paxList}" var="passenger">
    Passenger <c:out value="${passenger.name}" is aged ${passenger.age}<br/>
</c:forEach>

解释为什么它不能按原样工作:

<logic:iterate id="passRecord" property="passengerName" >
    <bean:write name="passengerName" property="passRecord" />
</logic:iterate>

上面的代码循环访问表单的 passengerName 数组(您应该将其命名为 passengerNames,因为其中有多个)的元素,并定义一个名为 passRecord 您必须在循环内使用。

由于 passengerName 是一个字符串数组,因此 passRecord 也是一个字符串。在循环内,您尝试访问 passengerName 的属性 passRecordString[] 中没有方法 getPassRecord()。乘客姓名存储在passRecord中。你只需要写它。使用正确命名的变量,它会更清晰:

<logic:iterate id="currentPassengerName" property="passengerNames" >
    <bean:write name="currentPassengerName" />
</logic:iterate>

关于java - 将 StringArray 的值从 java 类打印到 JSP 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11631668/

相关文章:

javascript - 从表行获取数据到 Javascript

java - 使用 document Ready 将按钮插入 jsp 上的 div

ocaml - 链表 OCaml

java - 当焦点丢失时会触发 insertUpdate

方向改变时的 java.lang.NullPointerException(Android 生命周期)

java - 从通过代理路由的请求中获取 IP 和主机名

c# - Javascript float 与 C# float 相比

java - 处理大型 xml 文件

java - 如何在服务器上部署/上传 JSP 文件

c++ - 无界数组 - 以奇怪的行为弹出