繁体   English   中英

在循环中将多个复选框值发送到 servlet

[英]send multiple checkbox value in loop to servlet

我有一个带有 doget() 的 servlet class,它使用 for 循环来填充各种用户的复选框。 例如,它将使用复选框读取填充用户 Rahul,并根据某些标准执行,它将使用复选框完全控制填充用户 Subh,其余框保持未选中状态。 现在 web 页面上的用户取消选中或选中每个用户的复选框以对其进行修改。 现在我应该如何将每个用户的更改复选框值传递给不同的 function。

for(int i=0;i<len;i++)
       {
         String[] parts = prop[i].split("\\\\");
         arr[i] = parts[0];
         pw.println("<tr><td>");
         pw.println(parts[0]+"\\ "+parts[1]);       //user's firstname\lastname
         pw.println("</td><td>");
         if(parts[2].contains("Full Control"))
         {
             pw.println("<label><input type='checkbox' value='FullControl' checked='checked'/>Full Control </label>"
                    + "<label><input type='checkbox' value='Read' checked='checked'/>Read </label>"
                    + "<label><input type='checkbox' value='Write' checked='checked'/>Write </label>"
                    + "<label><input type='checkbox' value='Execute' checked='checked'/>Execute</label>");
         } 
         else
         {
            pw.println("<label><input type='checkbox' value='FullControl'/>Full Control</label>");
            if(parts[2].contains("Read")){
                pw.println("<label><input type='checkbox' value='Read' checked='checked'/>Read</label>");
            }
            if(parts[2].contains("Execute")) {
                pw.println("<label><input type='checkbox' value='Execute' checked='checked' />Execute</label>");
            }
            if(parts[2].contains("Write")) {
                pw.println("<label><input type='checkbox' value='Write' checked='checked' />Write</label>");
            }
         }

我想在方法 modifyPermission(firstname, checkboxValue, allow\deny) 中传递此详细信息,以便为每个用户修改每个权限。 像这样的东西

obj.modifyACL(username, accessType, allow\deny);

您需要创建一个围绕复选框的 HTML “表单”。 为每个复选框添加不同的name属性。 并添加一个用户可以按下以发送表单的按钮。

生成的 HTML 应如下所示:

<form action="modifyAcl" method="post">
<label><input type='checkbox' name="fullControl" value='FullControl' checked='checked'/>Full Control</label>
...all your other checkboxes...

<input type="submit" value="Modify ACL" />
</form>

当用户按下按钮时,浏览器会将表单元素的值在 POST 请求中发送回服务器

然后 Servlet 将在doPost方法中接收请求。 在此方法中,您从请求参数中提取表单数据,然后调用您的 modifyACL 方法。

public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
  
  boolean fullControlChecked =  "FullControl".equals(request.getParameter("fullControl"));
  // extract other information to set the obj, username, accessType, and allowDeny variables

  obj.modifyACL(username, accessType, allowDeny);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM