2010-06-28 36 views
3


当一个表单被传递给一个servlet时是空字段“”还是null?因此,例如在一个形式,你必须首先名字字段和姓氏作为现场
迪安 - 名字
- 姓氏
那么,什么是它注册为在servlet?
由于提前
院长JSP空格式或“”形式的空字段?

回答

4

简单:如果参数名称存在,但值不是,那么它是空的。如果参数名称也不存在,则它为空。您通常给字段一个名称,所以它作为请求参数存在,空字段将以空字符串的形式出现。

+0

感谢我对浏览器的评论有点不确定 – Dean 2010-06-28 22:19:55

0

我认为这是到浏览器,但 在大多数情况下,这将是空 。你仍然应该允许这两种情况。

编辑:

正如在评论中指出,在大多数情况下,这将是空字符串。

+0

这当然不符合浏览器。 – BalusC 2010-06-28 22:00:15

+0

@BalusC:我不同意。这取决于浏览器是否提交空文本字段,如果该字段未提交,则值为空,否则为空字符串。 http://www.w3.org/TR/html4/interact/forms.html#h-17.13.2“如果控件在提交表单时没有当前值,则用户代理不需要处理它作为一个成功的控制。“ – 2010-06-29 04:58:38

+0

我已经完成了十多年的webdev,并且我还没有看到一个浏览器,当参数值为空时省略了参数名称,所以它肯定不是“在大多数情况下它将是空的”。 – BalusC 2010-06-29 12:02:47

1

它也取决于服务器。 JBoss会给你空的字符串,但是WebSphere会给你null。这是一个真正的PITA。我确信有一些标准可以说这种或那种方式(我的钱会在JBoss上是正确的实现),但是你应该为这两种可能性编写代码。

+3

这是Websphere中的** bug **。只需安装最新的修复包。这在[APAR PK10162](http://www-01.ibm.com/support/docview.wss?uid=swg1PK10162)中进行了描述。 – BalusC 2010-10-06 14:18:10