我很抱歉我的表述,但我不知道如何用一句话来解释。我的问题是:
我有一个显示的用户列表,您可以通过单击单选按钮授予他们权限。每个用户都有一个ID。这是架构:
Name Admin Publisher No Rights
Paul ( ) ( ) (x)
John (x) ( ) ( )
Lisa ( ) (x) ( )
我认为你得到了我想要的东西。我必须更新保存权限的数据库。我真的不知道怎么做。我尝试了以下方法:
<input type="radio" name="rightsForID1" id="1-admin" value="1-admin"></input>
<label for="1-admin">Admin</label>
<input type="radio" name="rightsForID1" id="1-publisher" value="1-publisher"></input>
<label for="1-publisher">Publisher</label>
等等。但是我如何评估请求?我不知道列表中有多少用户,我也不知道列表是否是连续的,例如可能没有ID为“5”的用户。有没有办法将点击的值和用户ID放在数组中?或者可能是不同的东西,我只想获得点击的值和用户ID。
答案 0 :(得分:0)
注意:以下只是示例代码,根据需要进行修改!
假设您有一个User like列表,
List<User> usersList = new ArrayList<User>();
并且您的表单(html / jsp)字段(无线电)将根据用户列表的迭代动态生成,
<table width="100%">
<tr>
<th>Name</th>
<th>Admin</th>
<th>Publisher</th>
<th>No Rights</th>
<tr>
<% for(User user : userList){ %>
<tr>
<td><%=user.getName() %></td>
<td>
<input type="radio" name="admin" id="<%=user.getUserId()%>-admin" />
</td>
<td>
<input type="radio" name="publisher" id="<%=user.getUserId()%>-publisher" />
</td>
<td>
<input type="radio" name="noRight" id="<%=user.getUserId()%>-noRight" />
</td>
</tr>
<%} %>
</table>
您何时提交表单/或通过ajax将数据发送到服务器,您可以获得无线电的价值:
String[] radioAdmin = request.getParameter("admin");
String[] radioPublisher = request.getParameter("publisher");
String[] radioNoRight = request.getParameter("noRight");
确保在这里检查NULL。
您将获得索引方式的选定/未选择无线电的布尔数组。 在这里,您再次需要迭代用户列表并获取无线电类型的值,
for(int i = 0; i < userList.size(); i++){
User user = userList.get(i); // Will get user object from list index-wise
boolean isAdminRoleAssigned = Boolean.valueOf(radioAdmin[i]);
boolean isPublisherRoleAssigned = Boolean.valueOf(radioPublisher[i]);
boolean isNoRoleAssigned = Boolean.valueOf(radioNoRight[i]);
// Do rest of your logic here for boolean values of radios for each user.
}