当前位置: 代码迷 >> Java Web开发 >> 关于struts查询问题 有代码
  详细解决方案

关于struts查询问题 有代码

热度:383   发布时间:2006-11-21 14:53:35.0
关于struts查询问题 有代码

请大家帮我看看 我这个查询哪里不对 我对数据结构也不是很清楚 数据上出错了 运行时显示“将截断字符串或二进制数据”java.lang.ClassCastException

首先我在一个页面中提交了查询表单
<html:form action="/registredeemAction.do">
<center>
<table border="0">
<tr>
<td>请输入需补办暂住证人身份证号:</td>
<td><html:text property="idcard" /></td>
</tr>

<tr>
<td colspan="2" align="center"><html:submit value="查询"/><html:reset value="重添"></html:reset></td>
</tr>


</table>
</center>
</html:form>

然后在action

try{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from T_A01 where idcard = "+"'"+idcard+"'";
rs=stmt.executeQuery(sql);
if(rs.next())
{
redeemDatabase.addElement(rs.getString("idcard"));
redeemDatabase.addElement(rs.getString("name"));
redeemDatabase.addElement(rs.getString("sex"));
redeemDatabase.addElement(rs.getString("folk"));
redeemDatabase.addElement(rs.getString("birthyear"));
redeemDatabase.addElement(rs.getString("birthmonth"));
redeemDatabase.addElement(rs.getString("birthday"));
redeemDatabase.addElement(rs.getString("marriage"));
redeemDatabase.addElement(rs.getString("occupation"));
redeemDatabase.addElement(rs.getString("relativephone"));
redeemDatabase.addElement(rs.getString("privence"));
redeemDatabase.addElement(rs.getString("resume"));
ok=true;
return(mapping.findForward("successredeem"));
}

(估计就是这里错了)

显示用自定义标签

try
{


Vector redeemVector=(Vector)session.getAttribute("redeemDatabase");

out.println("<table border=\"2\" cellspacing=\"0\" cellpadding=\"0\">");
out.println("<tr>");
out.println("<th BGCOLOR=\"#00FF00\"><b>身份证</b></th>");
out.println("<th BGCOLOR=\"#00FF00\"><b>姓名<b></th>");
out.println("<th BGCOLOR=\"#00FF00\"><b>性别</b></th>");
out.println("<th BGCOLOR=\"#00FF00\"><b>民族</b></th>");
out.println("<th BGCOLOR=\"#00FF00\"><b>出生日期</b></th>");
out.println("<th BGCOLOR=\"#00FF00\"><b>婚姻状况</b></th>");
out.println("<th BGCOLOR=\"#00FF00\"><b>职业</b></th>");
out.println("<th BGCOLOR=\"#00FF00\"><b>亲属联系方式</b></th>");
out.println("<th BGCOLOR=\"#00FF00\"><b>来自省份</b></th>");
out.println("<th BGCOLOR=\"#00FF00\"><b>简历</b></th>");
out.println("</tr>");

for(int i=0;i<redeemVector.size();i++)
{
redeemVector.elementAt(i);
out.println("<tr>");
out.println("<td>"+ redeemVector.get(0) + "</td>");
out.println("<td>"+ redeemVector.get(1) + "</td>");
out.println("<td>"+ redeemVector.get(2) + "</td>");
out.println("<td>"+ redeemVector.get(3) + "</td>");
out.println("<td>"+ redeemVector.get(4)+"-"+ redeemVector.get(5)+"-"+redeemVector.get(6)+ "</td>");
out.println("<td>"+ redeemVector.get(7) + "</td>");
out.println("<td>"+ redeemVector.get(8) + "</td>");
out.println("<td>"+ redeemVector.get(9) + "</td>");
out.println("<td>" +redeemVector.get(10) + "</td>");
out.println("<td>"+redeemVector.get(11)+"</td></tr>");
}

out.println("</table>");


}catch (Exception ex)
{
throw new JspTagException("IOException:" + ex.toString());
}


请问是哪里错了呢???有什么好方法可以更简单的实现数据查询后显示的呢???程序配置没有问题 就是查询或者输出数据库出错。请高手指教 再线等,等不到我不走了啊

搜索更多相关主题的帖子: struts  身份证  二进制  代码  

----------------解决方案--------------------------------------------------------
知道的请帮帮我啊 真心感谢愿意帮助我的人长命百岁,万寿无疆,终生幸福,!!!!天天看美女,日日拣钱包
----------------解决方案--------------------------------------------------------
不清楚你想要做什么,通常ACTION里是做逻辑处理,然后FINDFORWORD到页面去显示。
你的ACITION里面
if(rs.next())
{
redeemDatabase.addElement(rs.getString("idcard"));
redeemDatabase.addElement(rs.getString("name"));
redeemDatabase.addElement(rs.getString("sex"));
redeemDatabase.addElement(rs.getString("folk"));
redeemDatabase.addElement(rs.getString("birthyear"));
redeemDatabase.addElement(rs.getString("birthmonth"));
redeemDatabase.addElement(rs.getString("birthday"));
redeemDatabase.addElement(rs.getString("marriage"));
redeemDatabase.addElement(rs.getString("occupation"));
redeemDatabase.addElement(rs.getString("relativephone"));
redeemDatabase.addElement(rs.getString("privence"));
redeemDatabase.addElement(rs.getString("resume"));
ok=true;
return(mapping.findForward("successredeem"));
}
就是,如果数据库没返回数据的话,你的ACTION是没 RETURN FINDFORWARD的,可能有问题,不过具体不太清楚,你可以调试。
----------------解决方案--------------------------------------------------------
但是我在struts中配置了数据源 在其他类中我不知道 如何得到这个数据源了
请问除了在action中用getDatasSource(request)得到数据源 在其他组件中如何得到数据源?
----------------解决方案--------------------------------------------------------
谁能帮帮我啊 ???现在可以显示display数据了
但是显示不出查询结果
for(int i=0;i<redeemVector.size();i++)
{
redeemVector.elementAt(i);
out.println("<tr>");
out.println("<td>"+ redeemVector.get(0) + "</td>");
out.println("<td>"+ redeemVector.get(1) + "</td>");
out.println("<td>"+ redeemVector.get(2) + "</td>");
out.println("<td>"+ redeemVector.get(3) + "</td>");
out.println("<td>"+ redeemVector.get(4)+"-"+ redeemVector.get(5)+"-"+redeemVector.get(6)+ "</td>");
out.println("<td>"+ redeemVector.get(7) + "</td>");
out.println("<td>"+ redeemVector.get(8) + "</td>");
out.println("<td>"+ redeemVector.get(9) + "</td>");
out.println("<td>" +redeemVector.get(10) + "</td>");
out.println("<td>"+redeemVector.get(11)+"</td></tr>");
}

请问这种方法得到vector中的数据对吗??
----------------解决方案--------------------------------------------------------
呵呵,自己不会尝试一下么~~~很简单的问题
----------------解决方案--------------------------------------------------------

谁能帮我解答下呀


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

版主大哥 我常识了一天 用了各种容器 可是都显示不出查询结果
您发发慈悲 指点一下我吧


----------------解决方案--------------------------------------------------------
element = redeemVector.elementAt(i);
点到为止了


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

我把输出改了

out.println("<tr>");
for(int i=0;i<redeemVector.size();i++)
{
out.println("<td>"+ redeemVector.elementAt(0)+ "</td>");
}

out.println("</tr>");


但是还是显示不出来啊 查询是没问题 我只有输入正确idcard才能进入页面 但是就是不显示
斑竹 我比较笨 您能不能多点下啊
拜托了~~


----------------解决方案--------------------------------------------------------
  相关解决方案