jsp界面中用到一个ResultSet(从一个java类中的getResult方法返回),在jsp中要用到这个ResultSet,但是怎么关闭得到ResultSet 的 Connection对象呢?我觉得这个问题就很奇怪,一般的时候前台是不会处理这个的

解决方案 »

  1.   

    1、java类最好不要返回resultset,建议用collection、arraylist等封装、关闭resultset、再返回collection、arraylist2、a的onchange()可以调用action里的一个方法,返回一个collectiton集合,并在action设置request.setAttribute("bList",collecttion的集合名字),b不要用hmtl的元素,要用标签库<html:select property="b">
        <html:optioncollections name="bList",value=集合里的对象的字段1,label=集合里的对象的字段2
      </html:selelect>3、把内容放在form里或bean里,<bean:write>实现好多内容啊,麻烦
      

  2.   

    1. rs.getStatement().getconnection().close()2. 将数据全部取出, 放在js array, onchange中实现3. use struct, but <% %> is not bad.4. you can use validate at server side. at client side, it using js5. jb have the function
      

  3.   

    UP先,建议不用ResultSet,用RowSet或CachedRowSet,
      

  4.   

    试一试用javaScript写两个脚本程序控制你下拉表单的添加和删除。这里有两个函数,你看能不能用上:
    function AppendItem(ObjName, DesName)//添加选择的元素,参数为两个表单中的变量
    { ObjID    = GetObjID(ObjName);// GetObjID()为获取元素函数
      DesObjID = GetObjID(DesName);
      if (ObjID != -1 && DesObjID != -1)
      {  if ( IsSelected(DesObjID, "0000") )
            window.alert("已包含");
         else
         {  if ( HasTotal(ObjID) )
            {  document.Form1.elements[DesObjID].length = 0;
               document.Form1.elements[DesObjID].options[0]= new Option("---不限---", "0000");        }
            else
            {  for (j=0; j<document.Form1.elements[ObjID].length; j++)
                     {   if (document.Form1.elements[ObjID].options[j].selected)
                         {
                            temp = document.Form1.elements[ObjID].options[j].value;
                            if (!IsSelected(DesObjID, temp))
                            {
                               DesLen = document.Form1.elements[DesObjID].length;
                               document.Form1.elements[DesObjID].options[DesLen]= new Option(document.Form1.elements[ObjID].options[j].text, document.Form1.elements[ObjID].options[j].value);
                            }
                            else
                               window.alert("此选项已选择。");                     }
                     }        }
         }
         for (j=0; j<document.Form1.elements[ObjID].length; j++)
              document.Form1.elements[ObjID].options[j].selected = false;
      }
    }function RemoveItem(ObjName)//删除已选的元素
    { ObjID = GetObjID(ObjName);
      if ( ObjID != -1 )
      {  var  check_index = new Array();
         for (i=window.Form1.elements[ObjID].length-1; i>=0; i--)
         {   if (window.Form1.elements[ObjID].options[i].selected)
             {  check_index[i] = true;
                window.Form1.elements[ObjID].options[i].selected = false;
             }
             else
                check_index[i] = false;
         }
         for (i=window.Form1.elements[ObjID].length-1; i>=0; i--)
         {   if (check_index[i])
                 window.Form1.elements[ObjID].options[i] = null
         }
      }
    }
      

  5.   

    同意 TinyJimmy(Jimmy) 朋友的.
      

  6.   

    1、直接.close(),或者=null就可以。
    2、iframe用过吗?没有用过就Macromedia Dreamweaver的提示吧。一般是这样的<iframe src=""></iframe>,就是引一个其他页,把你的那几个下拉的东西都放这里。然后本页提交。
    3、把你要处理的中文赋给一个String类型的变量str。
    然后再String str1=.getBytes("iso-8859-1"), "GBK");
    str1就是你要的中文。
    4、
    5、前期工作没有做好,要是开始配置都一样,就没有这个问题了。
      

  7.   

    支持 france5516(---) 的做法
      

  8.   

    支持 france5516(---) 的做法
      

  9.   

    1、java类最好不要返回resultset,建议用collection、arraylist等封装、关闭resultset、再返回collection、arraylist这位老兄说的这点非常好,也很重要
      

  10.   

    用arraylist封装起来就可以了!!