繁体   English   中英

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

[英]Print values of StringArray from java class into JSP

我有一个表单类,我有一个String数组。 我正在设置字符串数组的值。 我需要在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是一个String数组,因此passRecord是一个String。 和循环内你试图访问该属性passRecordpassengerName String[]没有getPassRecord()方法。 乘客姓名存储在passRecord 你只需要写它。 使用正确命名的变量,它会更清晰:

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

使用jstl你可以这样做:

<table>
    <c:forEach var = "oneName" items = "${passengerName}" >
    <tr><td> ${oneName}</td</tr>
    </c:forEach>
</table>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM