【问题标题】:setAttribute to checkbox with servlet使用 servlet 将属性设置为复选框
【发布时间】:2018-11-03 12:27:38
【问题描述】:

这是我所拥有的:

JSP:

 <input type="checkbox" name="no_del_file" <% 
if ("True".equals(request.getParameter("no_del_file"))) {
    out.print("checked=\"checked\"");

} %>/>

<%String test = request.getParameter("no_del_file"); %>


 <p><%=test%></p>

Java:

 boolean cbState = request.getParameter( "no_del_file" ) != null;
            System.out.println("cbstate: "+cbState);
            if (cbState == true) {
                request.setAttribute("no_del_file", "checked");
                String checker=(String) request.getAttribute("no_del_file");
                System.out.println(checker);
            }

 RequestDispatcher dispatcher = request.getRequestDispatcher("/runButtonCommand.jsp");
            dispatcher.forward(request, response);

问题是输出是:

 cbstate: true
 checked

提交表单后,测试显示“on”为打印

但在 servlet 返回响应后,不会检查复选框本身。由于某种原因,勾号被删除。

有什么想法吗?

【问题讨论】:

    标签: java jsp servlets checkbox


    【解决方案1】:

    试试这个

    <% if(request.getParameter( "no_del_file" )=="checked"){%>
    <input type="checkbox" id="no_del_file" name="no_del_file" value="no_del_file" checked>
    <%}%>
    

    【讨论】:

    • 不起作用。提交表单后还是不勾选
    • 不要使用==来比较两个字符串之间的相等性,而是使用.equals。就此而言,不要在 jsp 中的代码 sn-p 中使用纯 java 代码。
    • 改成"checked".equals(requst......)还是不行
    • 重新加载后显示“on”
    • 尝试使用 request.getAttribute()。它可能有希望工作
    【解决方案2】:

    我终于弄明白了...如果有人对此感兴趣,那就是

     <%String test = (String)request.getParameter("no_del_file"); %>
    <%String checked = "";%>
    
    <% 
    if ("on".equals(test)) {
        checked="checked=\"on\"";
    
    } %>
    <input type="checkbox" name="no_del_file" <%=checked%>>
    

    勾选后返回

    【讨论】:

      猜你喜欢
      • 2018-01-10
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多