使用 servlet 验证服务器端的单选按钮

Posted

技术标签:

【中文标题】使用 servlet 验证服务器端的单选按钮【英文标题】:Validate radio button on server side using servlets 【发布时间】:2012-04-15 11:34:21 【问题描述】:

我只是想知道是否可以验证或检查 servlet 中的表单上是否至少选择了一个单选按钮?

或者这种类型的验证只能在客户端使用 javascript 等进行吗?

作为一种解决方法,我可以默认选中单选按钮,但理想情况下,我不希望最初选择单选按钮并在用户尝试提交表单时显示错误消息。

我只在 Web 应用程序上使用 Java servlet,所以如果有人在只使用 servlet 之前这样做过,那就太好了。

提前致谢。

【问题讨论】:

【参考方案1】:

在您的 servlet 中,如果它们在同一组中,您将获得所选无线电的值。如果用户没有选择任何收音机,您将收到null 值。让我们看看它的实际效果:

<form method="POST" action="HelloWorldServlet">
    <input type="radio" name="sampleRadio" value="val1" />Value 1
    <br />
    <input type="radio" name="sampleRadio" value="val2" />Value 2
    <br />
    <input type="submit" value="Hello Servlet" />
</form>

在servlet端:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException 
    response.setContentType("text/html;charset=UTF-8");
    String radio = request.getParameter("sampleRadio");
    if (radio != null)
        System.out.println("value of selected radio: " + radio);
    else
        System.out.println("no radio button was selected");

【讨论】:

太棒了 Luiggi,谢谢。我非常接近您的解决方案,实际上我使用相同的代码将单选按钮的值存储在会话对象中以供稍后处理。因此,作为对此的跟进,您是否知道重新显示出现错误的页面并因此不处理下一个请求(如果选择了单选按钮)的最佳方法? @elgoog 那应该是另一个问题:),但也许您需要在单选按钮旁边添加一些标签,这些标签只有在出现错误时才必须显示(一个保存逻辑值的会话变量错误)并重定向到错误变量为真值的同一页面。 是的,这似乎是一个很好的解决方案。再次感谢 Luiggi,非常感谢您的帮助!

以上是关于使用 servlet 验证服务器端的单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

Python Tkinter 中的单选按钮值

如何获得单选按钮的价值?

如何在表单之外制作单选按钮?

C#单选按钮测验[重复]

如何在 jQuery Mobile 中刷新单选按钮的样式和布局?

单选按钮值和提交按钮