我的要求在下面解释,
我在“DAO”类中使用了Arraylist,其中包含n个客户名称。我在“域对象”中设置了ArrayList,并在jsp页面中使用该“域对象”来显示客户名称。
我在jsp页面中使用会话范围,如下所示,
<c:set var="listCustomer" value="${ItemDataResponse.dataItemsList[0].listCustomers}"
scope="session"/>
<c:set var="CustomerData" value="${ItemDataResponse.dataItemsList[1]}" scope="session"/>
<div id="my_jpmorgan">
<table border="0" width="100%" bgcolor="">
<tr valign="top" class="lnav">
<td width=100%">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="paddingLeft" bgcolor="">
<tr>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="">
<tr>
<td valign="top" height="1px" align="left">
<span class="pageHeading_DarkBlue">
<c:out value="${CustomerData.customerName[0]}"/>
</span>
</td>
</tr>
<tr>
<td align="right">
<select name="singleSelect" onchange="javascript:onchangeFun(this);">
<c:forEach var="Customer" items="${listCustomer}" >
<option value=""> <c:out value="${Customer}" /></option>
</c:forEach>
</select>
</td>
</tr>
</td>
</tr>
</table>
</div>
每次第一次记录应用程序时,ArrayList中的第一个客户名称应显示在jsp页面的顶部。然后在加载jsp页面后
当我从下拉菜单中点击任何客户名称时,我必须在jsp页面顶部显示客户名称(即..如果我在选择xxx客户名称的下拉菜单中单击xxx客户应该显示在jsp页面的顶部)。
当我从下拉菜单中选择客户名称时,我能够显示其中包含所有cusotmers名称的下拉菜单(名称来自ArrayList)但是无法在jsp页面顶部显示客户名称。
如有必要,请修改我的粘贴代码。如果可能的话,还给我发一些示例代码
注意:我使用的是JSTL标签(我的要求是这样)。
在上面的jsp代码中
<c:out value="${CustomerData.customerName[0]}"/>
当我从下拉菜单中选择时,行应该在jsp页面顶部显示客户名称(当前不能正常工作)和 下面的行显示下拉窗口,客户名称来自ArrayList(工作正常)
<select name="singleSelect" onchange="javascript:onchangeFun(this);">
<c:forEach var="Customer" items="${listCustomer}" >
<option value=""> <c:out value="${Customer}" /></option>
</c:forEach>
</select>
答案 0 :(得分:2)
看起来您的问题是不了解HTML表单和JavaScript的工作方式。
有两种方法:
使用下拉列表将表单提交到服务器端。所选客户将被设置为请求参数,名称为singleSelect
(下拉列表名称)。
<form>
<select name="singleSelect" onchange="this.form.submit()">
...
并相应地显示所选客户:
<c:out value="${param.singleSelect}" />
使用JavaScript获取所选客户,并将其设置在您希望显示客户名称的HTML元素中。
<select name="singleSelect" onchange="showSelectedCustomer(this)">
使用这个JS函数
function showSelectedCustomer(dropdown) {
var selectedCustomer = dropdown.options[dropdown.selectedIndex].value;
var currentCustomer = document.getElementById('currentCustomer');
currentCustomer.firstChild.nodeValue = selectedCustomer;
}
和此占位符,您希望在以下位置显示所选客户:
<span id="currentCustomer"></span>