【发布时间】:2014-09-16 07:13:24
【问题描述】:
我最初编写了一个由 Struts 1.1 连接的 .jsp,以使用 scriplets 从数据库中提取一些数据:
<% Map<String, myObject> map = MyClass.returnMap();
for(Map.Entry<String, myObject> entry : map.entrySet()) {
myObject element = entry.getValue();
out.println("<tr>");
out.println("<td><input type=\"checkbox\" name=\"objects[]\" value=\"" + entry.getKey() + "\"/>" + entry.getKey() + "</td>");
out.println("<td>" + element.property1() + "</td>");
out.println("<td>" + element.property2() + "</td>");
}
%>
所以我最终得到了一个表格,其中包含一个复选框、对象名称和两个元素的属性作为列,returnMap() 返回的 Map 中的每个条目都有一行。
现在,我希望能够检查生成表中的许多复选框,然后单击一个按钮将所有选中复选框的列表发送到 servlet,以根据所选复选框执行一些服务器端计算。
一个问题是所说的“提交”按钮在表格之外,在一个单独的 div 中(用于固定位置的标题)。我可以在包含按钮和表格的整个 div 周围包裹一个表单吗?
我刚开始从事 Web 开发,并且已经完成了一些关于 Servlet 的教程,并且我了解了基本概念。我已经看到在 jsp 中将 scriptlet 用于业务逻辑通常是不好的做法,因此我正在考虑通过我的 Servlet 生成表。但是,我也希望能够在另一个 Servlet 方法中使用 Servlet 生成的元素(如果这有意义的话)。
我的思考过程是:
1) .JSP 通过 Struts 加载
2) .JSP 从 Servlet
接收表
3) 单击提交按钮时,将选中的复选框列表发送回 Servlet
4) Servlet 使用复选框列表并执行一些业务逻辑
5) .JSP 使用更新的表刷新
这是一个可行的过程吗?或者有更好的方法吗?
我必须访问 .jsp(通过 Struts),而不是大多数教程使用的 servlet url
【问题讨论】:
-
你说你正在使用 Struts。首先是 Struts1 还是 Struts2 ?它们是真正不同的框架,只是共享名称。而且从控制器向JSP传递对象的方式也不完全一样。
-
抱歉,更新了问题。我正在使用 Struts 1