有谁知道如何在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");
如果有人知道,请告诉我。我一直坚持这样做..
感谢任何帮助..谢谢
答案 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);
}
}
这就是我解决它的方式。