Java 如何轻松验证JSP选项选择列表?

Java 如何轻松验证JSP选项选择列表?,java,validation,jsp,xhtml,forms,Java,Validation,Jsp,Xhtml,Forms,我需要验证这个简单的选择列表: <select name="<%= key %>"> <option value="ETC" SELECTED>Select an option...</option> <option value="ONE">Lorem ipsum</option> <option value="TWO">dolor sit amet</option> <

我需要验证这个简单的选择列表:

<select name="<%= key %>">
    <option value="ETC" SELECTED>Select an option...</option>
    <option value="ONE">Lorem ipsum</option>
    <option value="TWO">dolor sit amet</option>
</select>

选择一个选项。。。
乱数假文
多洛·希特·阿梅特

因此,用户永远不会在提交表单时选择“选择一个选项…”选项。原则上我可以使用JavaScript,但学习如何在JSP中解决它也很有趣。

您永远无法真正满足“从不提交给定值”的条件,因为您无法控制客户端。用户总是可以操纵HTML来提交他们想要的任何内容

一种好的方法是使用JavaScript进行客户端验证,并向用户提供快速反馈,捕获99%以上的案例,然后对提交的参数进行服务器端验证,以捕获未启用JS或操纵HTML提交非预期值的少数人


请记住,客户端验证是可选的,适用于那些“常见错误”输入验证,但是,无论是否对给定的输入进行了任何客户端检查,服务器端验证对所有输入都是强制性的。

您永远无法真正满足“从不提交给定值”的条件,因为您无法控制客户端。用户总是可以操纵HTML来提交他们想要的任何内容

一种好的方法是使用JavaScript进行客户端验证,并向用户提供快速反馈,捕获99%以上的案例,然后对提交的参数进行服务器端验证,以捕获未启用JS或操纵HTML提交非预期值的少数人


请记住,客户端验证是可选的,对于那些“常见错误”的输入验证是有益的,但是服务器端验证对于所有输入都是强制性的,无论是否对给定的输入进行了任何客户端检查。

现在,您通常不在JSP中进行验证,因为他们只把之前处理过的东西形象化。因此,“在JSP中”所做的唯一验证通常是Javascript。对于其余部分(真正的验证),我支持Pete的回答:无论您在服务器端使用什么技术,您都必须在服务器端进行验证。当它再次显示在JSP中时,验证有望早就完成了


正如我所说的“现在”:当JSP是一个闪亮的新概念时,更多的工作是在JSP的边界内完成的,有时甚至表单被发布到JSP中。当时,如何验证更不标准。

如今,您通常不在JSP中进行验证,因为JSP只会可视化先前处理的内容。因此,“在JSP中”所做的唯一验证通常是Javascript。对于其余部分(真正的验证),我支持Pete的回答:无论您在服务器端使用什么技术,您都必须在服务器端进行验证。当它再次显示在JSP中时,验证有望早就完成了

正如我所说的“现在”:当JSP是一个闪亮的新概念时,更多的工作是在JSP的边界内完成的,有时甚至表单被发布到JSP中。当时,如何验证更不标准。

JSP是MVC模式中的一个“视图”,因此应该只用于向用户显示数据。任何应用程序逻辑,包括验证逻辑,都应该在服务器端完成。 如果这个JSP打算成为大型应用程序的一部分,我建议使用SpringMVC来设置您的应用程序,并编写一个验证器来验证输入。 但是,即使我们这里不是在讨论某个大型应用程序,验证仍然应该在服务器端完成,正如我前面的其他人已经指出的那样。

JSP是MVC模式中的一个“视图”,因此应该只用于向用户呈现数据。任何应用程序逻辑,包括验证逻辑,都应该在服务器端完成。 如果这个JSP打算成为大型应用程序的一部分,我建议使用SpringMVC来设置您的应用程序,并编写一个验证器来验证输入。
但是,即使我们不是在这里讨论一些大型应用程序,验证仍然应该在服务器端进行,正如我之前的其他人已经指出的那样。

非常感谢您的评论,我当然想按照您的建议学习Spring,但问题是,我不是从零开始一个应用程序,我是在处理一个现有的、适当的应用程序,生产应用程序。非常感谢您的评论,我当然想按照您的建议学习Spring,但问题是,我不是从头开始一个应用程序,我是在处理一个现有的、适当的生产应用程序。