0

我有一个带有 JSP+JavaScript+Servlets 的 Java 项目,在 JavaScript 中有一个函数可以在我的数据库中查找一些记录。当找到这条记录时,我的函数会返回一些值,如果没有,我的函数会返回一条消息。现在我需要另一个函数来从我的数据库中返回几个字段,我不知道是谁。我对 JavaScript 和 JSP 不是很熟悉。
编辑:我做了一些改变

这是我的 JSP 代码的一部分:

 <%
     HashMap row = new HashMap();
 %>
 <tr>
    <td>
     <input type='text' id="noeco" name="noeco" size=5 maxlength=5 onkeyup="find_noeco_s(noeco,row);">
     <span name="exists" id="exists" readonly="readonly" style="width: 200px" value='{row.get("exists")}'></span></input>                            
   </td>
 </tr>
 <tr>
   <td>
     <input type='text' id="matric" name="matric" readonly="readonly"  value="{row.get('matri')}"></input>
   </td>
 </tr>
 <tr>
   <td>
     <input type='text' id="marca" name="marca" readonly="readonly" value="{row.get('marca')}"></input>
   </td>
 </tr>

这是我的 JavaScript 函数“find_noeco_s”:

function find_noeco_s(noeco,row){
   objsal = row;
   if(window.XMLHttpRequest)
       ajax = new XMLHttpRequest();
   else
       ajax = new ActiveXObject("Microsoft.XMLHTTP");
   ajax.onreadystatechange = funcionCallback;

   ajax.open("GET", "/processEco.jsp?noeco="+noeco.value, true);
   ajax.send("");

}

这是我的 JSP processEco:

String noeco = request.getParameter("noeco");
String exists="";
String matri= "";
HashMap row = new HashMap();
try{
   PreparedStatement ps = PV.prepareStatement("select * from vehicles where econom=?");
   ps.setString(1, noeco);
   ResultSet rs = ps.executeQuery();
   if(rs.next()){
        exists= rs.getString("dstipveh");
        matri = rs.getString("matr");
        marca= rs.getString("marca");
        row.put("exists", exists);
        row.put("matr", matr);
        row.put("marca", marca);
   }else{
        exists= "DOES NOT EXISTS";
        row.put("exists", exists);
   }
%>
<%=row%>
<% 
}finally{}      
%>

但我只得到一个值(存在)。就像我说的,我对 JavaScript 和 JSP 不是很熟悉。那么,我怎样才能返回多个值并在我的 JSP 中显示这些值,就像我只使用一个值一样?

4

2 回答 2

0

根据您的问题要求将所有字段合并为一个对象,并从您的方法调用中返回该对象。

例如:

  Class MyReturnTypeData {
  private String exists;
  private String matr;
  private String marca;
  ....

  }
于 2013-08-27T03:23:47.010 回答
0

一种方法是使用哈希图。

HashMap row = new HashMap();
if(rs.next()){
exists= rs.getString("dstipveh");
matri = rs.getString("matr");
marca= rs.getString("marca");
row.put("exists", exists);
row.put("matr", matr);
row.put("marca", marca);
}
else
{
exists= "DOES NOT EXISTS";
row.put("exists", exists);
}
return row;

然后检索值

<%
if (row.get("exists").equals("DOES NOT EXISTS"))
{
out.println(row.get("exists"));
}
else
{
out.println(row.get("exists"));
out.println(row.get("matr"));
out.println(row.get("marca"));
}
%>
于 2013-08-27T03:36:18.593 回答