如何检索多个选择值?

时间:2012-01-31 04:39:09

标签: java jsp select portlet

有谁知道如何在jsp liferay portlet中检索多个选择值..

我有以下选择框

<form name="<portlet:namespace/>fm1" 
    method="post"
    action="
      <portlet:actionURL>
        <portlet:param name='nextPage' value='pm_addActivityResult.jsp'/>
      </portlet:actionURL>"
    onsubmit="return selectAllOptions('item_id')"> 

<table>
 <tr>
  <td> 

     <select multiple="multiple" id="item_id" name="item_id" size="1">
        <c:forEach items="${pageScope.itemList}" var="num">
            <option value="${num.id}">${num.type} ${num.model} ${num.serialNo}</option>
        </c:forEach>    
     </select>

  </td>
 </tr>
</table>

<input type="submit" value="ADD" name="add"/>

</form>

我已经尝试过下面的代码,但似乎不起作用:(

   String[] itemId = renderRequest.getParameterValues("item_id");

如果有人知道,请告诉我。我一直坚持这样做..

感谢任何帮助..谢谢

3 个答案:

答案 0 :(得分:1)

首先,因为您正在使用表单,我相信表单指向actionURL而不是renderURL。接下来如果是这种情况你应该使用actionRequest.getParameterValues(“item_id”);假设您正在重写processAction,而不是renderRequest。

答案 1 :(得分:1)

尝试打印actionRequest.getParameterNames(),或者迭代它并打印值。

答案 2 :(得分:1)

我修好了!

这很复杂。我有一个java文件将数据从一个jsp表单传递给另一个。

所以,而不是使用这段代码:

public void processAction(ActionRequest request, ActionResponse response) throws PortletException,   IOException {

    Map<String,String[]> paramMap = request.getParameterMap();
    Set<String> params =  paramMap.keySet();

    for(String param:params){ 
        response.setRenderParameter(param, paramMap.get(param)[0]);

    }      
 }

我用过这个

 public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException {

    Map<String,String[]> paramMap = request.getParameterMap();
    Set<String> params =  paramMap.keySet();

    for(String param:params){

        //string array check
        String[] paramValues = paramMap.get(param);
        response.setRenderParameter(param, paramValues);

    }     
}

这就是我解决它的方式。