【问题标题】:how to display selected data in jsp pagejsp页面如何显示选中的数据
【发布时间】:2010-08-15 09:57:41
【问题描述】:

我的要求解释如下,

我在“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 页面的顶部)。

当我从下拉菜单中选择客户名称时,我能够显示包含所有客户名称的下拉菜单(名称来自 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> 

【问题讨论】:

    标签: java javascript jsp jstl


    【解决方案1】:

    看来您的问题在于不了解 HTML 表单和 JavaScript 的工作原理。

    有两种方式:

    1. 将带有下拉列表的表单提交到服务器端。所选客户将被设置为请求参数,名称为 singleSelect(下拉菜单的名称)。

      <form>
          <select name="singleSelect" onchange="this.form.submit()">
              ...
      

      并相应地显示选定的客户:

      <c:out value="${param.singleSelect}" />
      
    2. 使用 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>
      

    另见:

    【讨论】:

    • 。根据您的建议,我正在使用 onchange() 但问题是,在 onchange="showSelectedCustomer(this)" 中,如果我传递当前对象,我如何才能在脚本中检索选定的值。我试过但徒劳无功。请帮帮我
    • 这是在脚本函数示例中完成的。当前对象可用作dropdown 变量,如何获取所选值在var selectedCustomer 行中显示。
    • @BalusC ..我需要再澄清一下.. 第一次拍摄时,我在下拉列表中显示所有客户,点击任何客户名称后,页面会刷新并执行其他操作。问题是刷新页面后,我需要显示与仍选择的客户名称相同的客户名称(我在刷新页面之前选择的名称),并在下拉列表中保留所有其他客户名称......有什么想法吗?
    猜你喜欢
    • 2013-03-16
    • 2015-09-20
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多