今天遇到了好小的一个细节,细节,细节;
关于注册用户信息的问题,我首先注册了。先看这么一段:
<td class="altbg2">
<input type=radio name="sex" value="男">男
<input type=radio name="sex" value="女">女
</td>
注册成功后存在数据库;
接着修改这一信息,代码如下;
<td class="altbg2">
<%String sexStr=u.getSex(); %>
<input type="radio" name="sex" value="男" <%=sexStr.equals ("男") ? "checked":""%> /> 男
<input type="radio" name="sex" value="女" <%=sexStr.equals("女") ? "checked":""%> /> 女
</td>
注意:判断字符串时不要用“==”。坚决用equals(),这应该是常识了;
上面调试结果很明显一直都没有选中;
想想想。。。。
终于发现错误了,我存入数据库性别字段的数据类型是CHAR(3),是一个固定字符串类型,不像VARCHAR2类型,取出时性别一定是占3个字节的。如“男 ”,“女 ”。所有那个判断一直是false。
于是调用TRIM()消除空格,代码如下:
<td class="altbg2">
<%String sexStr=u.getSex(); %>
<input type="radio" name="sex" value="男" <%=sexStr.trim().equals("男") ? "checked":""%> />
男
<input type="radio" name="sex" value="女" <%=sexStr.trim().equals("女") ? "checked":""%> />
女
</td>
运行OK!
所以啊,细节细节,需留个心眼。