我从几天开始面临问题,无法找到解决方法。让我解释一下我的问题,基本上,我正在接收表对象(表中不存在表,但这个表对象是由多个表组成的查询形成的),从DB到jsp,它有几行并在UI中显示它们。代码在jsp中如下所示。
<c:forEach items="${someinvoice}" var="invoice" varStatus="status">
<tr>
<td><input id="cartcheckbox" class="case" type="checkbox" name="case" value="${invoice}"/></td> //here invoice represents a row in table which looks like someinvoice[Name=Mobie , location= US, actualTransferDate=null, scanserialCode=234335,1237787, modelNum=MIC 898989 ]
<td>${invoice.scanserialCode}</td>
<td>${invoice.modelNum}</td>
<td>${invoice.assetName}</td>
<td>${invoice.assettoLocation}</td>
<td>${invoice.actualTransferDate}</td>
</tr>
</c:forEach>
我从控制器那里得到 someinvoice ,如下所示。
List<BeanClass> invoiceData = service.Dao();
model.addAttribute("someinvoice", invoiceData);
现在,如果我检查UI上显示的表格中的某些行并单击“提交”按钮,则会生成一个新页面,该页面应仅以表格格式显示所选行。为此,当单击提交按钮时,我将检查的行带入控制器,如下所示。
String[] checkeditems = request.getParameterValues("case");//here case represents all the checked rows in the page and checkeditems represents a list of row objects as String.
我真正的问题是,我无法将此String数组转换为我的bean类类型,因此我可以轻松地将这些已检查的行发送到另一个jsp,该jsp在单击提交按钮后显示。这让我有点恼火。
任何人都可以帮助我,我在这里打了一会儿。
感谢。
答案 0 :(得分:0)
你不必做request.getParameterValues(&#34; case&#34;)。您可以使用<form:checkbox path="invoice.checkBoxListName" value="${choice}"/>.
上面将填充bean类中的列表,这样就不必在外部将数组分配给bean。
如果有帮助,请告诉我。
答案 1 :(得分:0)
<强> JS 强>
var someinvoice= [];
$('input[name="case"]:checked').each(function() {
someinvoice.push(this.value);
});
在提交时发送 someinvoice 。
在控制器
上List<BeanClass> invoiceData =Arrays.asList(gson.fromJson(request.getParameter("someinvoice"), BeanClass[].class));
它将返回BeanClass对象列表。