1

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

<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 中解决它也会很有趣。

4

3 回答 3

2

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

一个很好的方法是使用 JavaScript 进行客户端验证并给用户快速反馈并捕获 99%+ 的案例,然后对提交的参数进行服务器端验证以捕获少数没有启用 JS 或操纵 HTML 以提交非预期值。

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

于 2008-09-25T20:24:26.373 回答
1

现在,您通常不在 JSP 中进行验证,因为它们只可视化之前处理的任何内容。因此,您“在 jsps 中”进行的唯一验证通常是 Javascript。对于其余的(真正的验证),我支持 Pete 的回答:你必须在服务器端使用你在那里使用的任何技术。当它再次显示在 JSP 中时,验证已有望完成。

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

于 2008-09-25T20:48:08.143 回答
1

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

于 2008-09-26T10:59:51.793 回答