如何从java代码中的<select multiple =“”>中检索多个选定的值?</select>

时间:2010-01-03 18:22:28

标签: java jsp select servlets

代码如下:

<select name="merTransactionTypeId" class="cbox"  multiple>
  <!--
  <option value="0" <%=request.getParameter("merTransactionTypeId")!=null?"0".equalsIgnoreCase(request.getParameter("merTransactionTypeId"))?"selected":"":""%>>All</option>
  --> 
  <option value="2" <%=request.getParameter("merTransactionTypeId")!=null?"2".equalsIgnoreCase(request.getParameter("merTransactionTypeId"))?"selected":"":""%>>Reload</option>
  <option value="1" <%=request.getParameter("merTransactionTypeId")!=null?"1".equalsIgnoreCase(request.getParameter("merTransactionTypeId"))?"selected":"":""%>>Sale</option>
  <option value="5" <%=request.getParameter("merTransactionTypeId")!=null?"5".equalsIgnoreCase(request.getParameter("merTransactionTypeId"))?"selected":"":""%>>CCMS_Recharge</option>             
  <option value="6" <%=request.getParameter("merTransactionTypeId")!=null?"6".equalsIgnoreCase(request.getParameter("merTransactionTypeId"))?"selected":"":""%>>Loyalty_Award</option>      
  <option value="7" <%=request.getParameter("merTransactionTypeId")!=null?"7".equalsIgnoreCase(request.getParameter("merTransactionTypeId"))?"selected":"":""%>>Loyalty_Redeem</option>     
  <option value="16" <%=request.getParameter("merTransactionTypeId")!=null?"16".equalsIgnoreCase(request.getParameter("merTransactionTypeId"))?"selected":"":""%>>FCC_Reload</option>
  <option value="11" <%=request.getParameter("merTransactionTypeId")!=null?"11".equalsIgnoreCase(request.getParameter("merTransactionTypeId"))?"selected":"":""%>>Tracking</option>
  <option value="12" <%=request.getParameter("merTransactionTypeId")!=null?"12".equalsIgnoreCase(request.getParameter("merTransactionTypeId"))?"selected":"":""%>>Fund_Transfer_From_Card</option>                  
</select>

我正在尝试使用scriplet中的代码从下拉列表中检索值

<% String[] selectedTransactionTypes = request.getParameterValues("merTransactionTypeId"); %>

...但它返回null。请帮帮我。

1 个答案:

答案 0 :(得分:2)

显然,列表框没有包含在同一个<form>中,或者甚至没有<form>的方法,或者您尝试在错误的时刻访问它(例如之前< / em>表单提交),或者参数名称中可能有拼写错误(使用getParameterNames()查看全部内容)。

也就是说,我强烈建议您将旧式的scriptlet放在一边,继续使用servlet类对请求进行预处理和后处理,并使用taglibs / EL来控制JSP中的流和访问数据。它将使您的代码更清晰。