如何解决如何将列表从JSP传递到ACtion类
| 美好的一天! 我想将我的代码转换为STRUTS。并且我尝试不在操作类中使用getParameter。 但是,如果不使用getParameter,就无法将信息从JSP传递到Action类。 JSP: <html:form action=\"EditExam\">
<input type = \"hidden\" name = applicantNumber value=\"${applicantForm.applicantNumber}\" >
<table>
<c:forEach var=\"exam\" items=\"${examList}\">
<input type = \"hidden\" name =\"examId\" value=\"${exam.examId}\" >
<tr>
<td>Exam Type:  </td> <td><input type=\"text\" value=\"${exam.examName}\" name=\"examType\" readonly =\"true\"></td>
</tr>
<tr>
<td>Date: </td> <td><input type=\"text\" value=\"${exam.examDate}\" name=\"examDate\" class=\"date\"></td>
</tr>
<tr>
<td>Result: </td>
<td>
<select name = examResult>
<option value=\"Pass\" ${exam.examResult == \'Pass\' ? \'selected\' : \'\'}>Pass</option>
<option value=\"Fail\" ${exam.examResult == \'Fail\' ? \'selected\' : \'\'}>Fail</option>
<option value=\"\" ${exam.examResult == \'\' ? \'selected\' : \'\'}></option>
</select>
</td>
</tr>
<tr><td> </td><td>  </td></tr>
</c:forEach>
</table>
<input type=\"submit\" class=\"saveButton\" value=\"SAVE\">
</html:form>
动作课:
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
String forward = \"success\";
ApplicantForm applicantForm = (ApplicantForm)form;
int applicantNumber = applicantForm.getApplicantNumber();
String examDate[] = request.getParameterValues(\"examDate\");
String examResult[] = request.getParameterValues(\"examResult\");
String examId[] = request.getParameterValues(\"examId\");
//MORE CODES AFTER...
我的问题是:
如何不使用getparameter将数据从JSP传递到Action类。
考虑:
我的考试是清单...
编辑按钮位于循环外部...因此应捕获循环内部的所有更改。(我需要传递ArrayList吗?如何在Action FOrm上捕获它?)
您的回复将不胜感激。谢谢。
解决方法
你不能。您可以使用HTTP协议将数据从浏览器(html,jsp的结果)传输到服务器,该协议仅传输文本请求参数。
因此,您必须使用
request.getParameter[Values](..)
。如果需要List
,可以使用Arrays.asList(array)
。
我认为struts应该具有某种形式的绑定,因此无论您在何处指定输入参数,都可以尝试指定a3ѭ,struts可能会填充它。 (但仍会在引擎盖下使用request.getParameterValues(..)
)
, HTML / JSP无法理解列表等Java对象。它们仅处理纯字符串/数字或字节流。
所以你必须使用
request.getParameter(\"paramName\");
或者如果您需要地图,可以使用
Map < String,String[] > queryParamsMap = (Map < String,String[] > )request.getParameterMap();
从地图上,您可以直接获取特定参数的数组。通过使用例如
String[] paramArray = queryParamsMap.get(\"myParam\");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。