再问jsp修改记录

时间:2008-05-10 23:46:58   来源:论坛整理  作者:  编辑:chinaitzhe
jsp开发,目的是修改记录,但在读取记录的时候碰到了问题~~
把数据库中的读取的记录值显示在一个表单中,虽然可以显示出文本框类型的数据(例如:编号,姓名可在文本框中显示),但不会显示出下拉列表或单选按钮的值

下面是单选按钮的代码:
方案1:
……
<tr>
<td width="20%">性别 </td>
<td width="80%">
<input type="radio" name="sex" value="男" <%=rs.getString("性别")=="男"? "checked":""%>>男
<input type="radio" name="sex" value="女" <%=rs.getString("性别")=="女"? "checked":""%>>女
</td>
</tr>
……

方案二:
……
<tr>
<td width="20%">性别 </td>
<td width="80%">
<%if((rs.getString("性别")).equals("男"))
{
%>
<input type="radio" name="sex" value="男" checked>
<%
}
else
{
%>
<input type="radio" name="sex" value="男">
<%
}
%>

<%if((rs.getString("性别")).equals("女"))
{
%>
<input type="radio" name="sex" value="女" checked>
<%
}
else
{
%>
<input type="radio" name="sex" value="女">
<%
}
%>
无 </td>
</tr>
……

两套方案都是只显示到“性别” 单选按钮 “男”……后面的“女” 其它字段就显示不出来了,

不知道是不是代码问题,请各位前辈指教!多谢!
网友回复: <tr>
<td width="20%">性别 </td>
<td width="80%">
<%if((rs.getString("性别")).equals("男"))
{
%>
<input type="radio" name="sex" value="男" checked>
<input type="radio" name="sex" value="女">
<%
}
%>


<%if((rs.getString("性别")).equals("女"))
{
%>
<input type="radio" name="sex" value="男">

<input type="radio" name="sex" value="女" checked>

<%
} %>

</tr>
网友回复:你的字段名用的中文...
看看rs.getString("性别")取的值是否正确

网友回复:2楼说的对
强烈建议不要用中文,能避免很多问题.

网友回复:可以用下拉框的方法实现。在数据库里面定义字段sex=1为男 sex=2为女 然后你存取的时候用个Interger.parseInt(String)不就ok了吗?
<select size ="1" id="sex" name="sex"> <option value="1" <%if(rs.getInt(5)==1){out.print("selected");}else{out.print("");}%>>男 <option value="2" <%if(rs.getInt(5)==2){out.print("selected");}else{out.print("");}%>>女 </select> </td> </tr>
网友回复:首先==是比较内存地址,用equals()比较字符串。

网友回复:
HTML code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/



<input type="radio" name="sex" value="男"  <%=rs.getString("性别")=="男"? "checked":""%>>男 

   <input type="radio" name="sex" value="女"  <%=rs.getString("性别")=="女"? "checked":""%>>女 


改成
HTML code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/



<input type="radio" name="sex" value="男"  <%="男".equals(rs.getString("性别"))? "checked":""%>>男 

   <input type="radio" name="sex" value="女"  <%="女".equals(rs.getString("性别"))? "checked":""%>>女 



网友回复:用了大伙的方法,还是不行~~

不是中文的问题,试了~~郁闷
网友回复:不知道有哪位朋友在初学那会碰到增删改上面类似的问题~~谢谢啦!
网友回复:一定要搞懂啊!顶上去~~
网友回复:rs.getString("性别")=="男"

我估计 要害是这里

你去看JSP生成的SERVLET文件 里面 "男" 被编译成了 其他编码的串 而你rs中读取的串值的编码 是不一样的

当然不一定是这样的原因


我建议 在JSP中不要直接使用 ResultSet

应该在JAVABEAN中封装他
然后 添加属性 bool IsMan() // bool IsWoman()
这样肯定OK
网友回复:
HTML code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





<input type="radio" name="sex" value="男"  <%="男".equals(rs.getString("性别"))? "checked":""%>>男 

<input type="radio" name="sex" value="女"  <%="女".equals(rs.getString("性别"))? "checked":""%>>女 




改为
HTML code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





<% String sex = rs.getString("性别");%>

<input type="radio" name="sex" value="男"  <%="男".equals(sex)? "checked":""%>>男 

<input type="radio" name="sex" value="女"  <%="女".equals(sex)? "checked":""%>>女 





网友回复:条件判定,假如和取出的一致就把该项标识为checked
网友回复: <% String sex = rs.getString("性别");%>
<input type="radio" name="sex" value="男" <%="男".equals(sex)? "checked":"" %> />男
<input type="radio" name="sex" value="女" <%="女".equals(sex)? "checked":"" %> />女
注重%前面有个空格

关键字:jsp,修改,记录,

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面