单选按钮请求jsp问题(也许数组是解决方案?)

时间:2013-12-24 11:53:15

标签: jsp radio-button

我很抱歉我的表述,但我不知道如何用一句话来解释。我的问题是:

我有一个显示的用户列表,您可以通过单击单选按钮授予他们权限。每个用户都有一个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。

1 个答案:

答案 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.
}