日期:2014-05-18  浏览次数:20833 次

关于""和null的探讨
null意味着是没有分配内存空间的, " "意味着已经有了空间。这可能是两者最大的区别.下面着重探讨一下在网页之间传值和从数据库中两种情况下什么时候值为 " ",什么时候值为null.

<%=request.getParameter( "username ")%> ,如果前面一个页面名为username的文本框为空,此时这里在网页上输出的就是空白,也就是说为空的方本框传过来的值一定是空字符串.

<%=rs.getString(2)%> 如果此字段在数据库中为空,则在网页上输出的结果比较奇怪,有的为null,有的为 " ",请大家帮忙指导一下为什么会出现两种结果,谢谢!

------解决方案--------------------


<%=rs.getString(2)%> ……
有的有默认值呗——还有,也许是被修改过、置成了 " "呢

判断就同时判断 null 和 " " 好了。
------解决方案--------------------
<%=rs.getString(2)%> 如果此字段在数据库中为空,则在网页上输出的结果比较奇怪,有的为null,有的为 " ",请大家帮忙指导一下为什么会出现两种结果,谢谢!


这个可能和数据库有关系,对于oracle的varchar2和SQL Server的varchar,对于没有值的字符串字段,它们的返回值不同,varchar2返回null,varchar则返回的是 " ",如果一个null值,则使用 <%=null%> ,页面上会显示null.是否是由于这个问题引起的。


结贴给分吧。
------解决方案--------------------
<%=rs.getString(2)%> 它的值主要取决于数据库的值,如果数据库里的值是null那么页面显示的null如果数据库的是 " "输入到页面的也是 " "
------解决方案--------------------
1. <%=rs.getString(2)%>
数据库里为null时,取出的null
数据库中为 " "时,取出来的为 " "
2.null toString()时,页面显示为null
" "时,页面显示为 " "
------解决方案--------------------
如果数据库中字段为null的话,到页面的时候输出为空;
如果页面什么都不填保存的时候,到数据库的时候为空;
------解决方案--------------------
在界面上,只要你点了txt框,就应该是“”
如果没动他,应该是null
------解决方案--------------------
网页上text提交的时候是空串,而数据库中是什么就是什么值,null就是null,要做个判断