我正在尝试渲染控制器中的对象列表,这些对象从jsp传递为隐藏的变量。
这是我的代码
我的employeeResults.jsp 中的
在我的控制器中 //员工搜索的方法调用 当我运行empList时返回一个数组格式的sting,但我想做的是从jsp获取Employee对象列表。 非常感谢任何帮助。 提前致谢!<c:forEach items="${list}" var="employee" >
<tr>
<td>${employee.empId}</td>
<td>${employee.empName}</td>
<td>${employee.empEmail}</td>
</tr>
</c:forEach>
<form method="POST" action="downloadCSV.html" >
<input type="hidden" id="empList" name="empList" value="${list}"/>
<input type="submit" name="download" value="Download"/>
</form>
@RequestMapping(value = "/search", params = "search", method = RequestMethod.POST)
public ModelAndView lookupEmployee(@ModelAttribute("command") Employee emp) {
String lookupEmpId = null;
if(emp.getEmpId()!= null)
lookupEmpId = emp.getEmpId();
String[] line = lookupEmpId.split("\n");
List<String> eIds = new ArrayList<String>();
for(String i: line){
eIds.add(i);
}
List<Employee> listEmp = employeeDAO.searchRecords(eIds);
ModelAndView model = new ModelAndView("lookupResults");
model.addObject("list",listEmp);
return model;
}// addContact()
@RequestMapping(value = "/downloadCSV", method = RequestMethod.POST)
public void downloadCSV(HttpServletRequest request, HttpServletResponse response) throws IOException {
String empList = request.getParameter("empList");
List<String> items = Arrays.asList(empList.split("\\s*,\\s*"));
-----
}
答案 0 :(得分:1)
这不是将对象保存在隐藏字段中的正确方法。
查看浏览器中的源代码,它可能会显示toString()
的默认List<Employee>
表示。
<input type="hidden" id="empList" name="empList" value="[pkg.Employee@7b9bd73]"/>
在会话中将其设置为方法lookupEmployee()
中的属性,并在downloadCSV()
方法中将其恢复。
示例代码:
public ModelAndView lookupEmployee(HttpServletRequest request,@ModelAttribute("command") Employee emp) {
...
List<Employee> listEmp = employeeDAO.searchRecords(eIds);
request.getSession().setAttribute("empList", listEmp);
...
}
public void downloadCSV(HttpServletRequest request, HttpServletResponse response) throws IOException {
List<Employee> empList = (List<Employee>)request.getSession().getAttribute("empList");
...
}
我不想为此使用会话范围,我正在寻找任何其他替代选项
使用JSON字符串在服务器和客户端之间传输对象。
使用任何JSON解析库(例如GSON library)从JSON字符串形成JAVA对象,反之亦然。
请查看此Example