【问题标题】:Read values of checkboxes when the value has spaces in java /servlets当值在 java /servlets 中有空格时读取复选框的值
【发布时间】:2016-07-18 04:30:26
【问题描述】:

我的 Jsp 中有复选框,字符串值不是一个单词,即两个或三个单词:

<tr>
            <td> Change Password</td>
            <td><input type="checkbox" name="admin" value="Change Password" /></td>
        </tr>
         <tr>
            <td> Add User</td>
            <td><input type="checkbox" name="admin" value="Add User" /></td>
        </tr>
        <tr>
            <td> Modify Workclass</td>
            <td><input type="checkbox" name="admin" value="Modify Workclass" /></td>
        </tr>

在我的 servlet 中,我选择这样的值:

 String[] adminresources = request.getParameterValues("admin");
if (adminresources.length > 0) {
                for (String admin : adminresources) {
                    System.out.println(admin);
                }
            }

我的输出只打印每个值的第一个工作,即:

Change
Add
Modify

我无权更改从外部数据库获取的值(在我的示例中未显示)。我如何获得完整的值,或者我做错了什么,我只得到了第一个单词?

编辑 使用 Robby Suggestion 我注意到从数据库中选择值的 Jsp 没有被引用。即

<td><input type="checkbox" name="admin" value=<%= (String) one.get(1)%> /></td>

我改成:

<td><input type="checkbox" name="admin" value="<%= (String) one.get(1)%>" /></td>

现在一切都很好。

【问题讨论】:

  • 请检查两次,看起来你写的代码是完美的,一些小错误你没有在这里发布..
  • 你能预处理这些值并将 ' ' 替换为 '%20' 吗?可能会成功
  • 我猜你的 HTML 中的实际值没有被引用。
  • 您可以在value 字段的文本之间添加underscore (_) 并将此( _ ) 替换为servlet 处的空格
  • @ErrorNotFoundException 您能否将问题的更新部分作为答案发布并接受?有助于保持网站清洁且易于浏览。

标签: java jsp servlets checkbox


【解决方案1】:

使用 Robby Cornelissen 建议不要引用数据库中的值。我注意到 JSP 是这样的:

<td><input type="checkbox" name="admin" value=<%= (String) one.get(1)%> /></td>

所以我把它改成了这样:

<td><input type="checkbox" name="admin" value="<%= (String) one.get(1)%>" /></td>

这解决了问题。谢谢。

【讨论】:

    猜你喜欢
    • 2016-05-13
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 2017-04-03
    • 2011-03-09
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    相关资源
    最近更新 更多