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

问题描述

我有一个带有doget()的servlet类,该类使用for循环来填充各个用户的复选框。例如,它将为用户Rahul填充复选框read并根据某些条件执行该复选框,并将为Subh用户填充复选框的完全控制权,而其余复选框保持未选中状态。现在,网页上的用户取消选中或选中每个用户对其进行修改的框。现在,我应该如何将每个用户的更改复选框值传递给不同的功能。

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,allowDeny);
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...