多值函数JavaScript+JSP+Servlet



我有一个Java项目,使用JSP+JavaScript+Servlets,在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进程Eco:

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中显示这些值,就像只使用一个值一样?

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

例如:

  Class MyReturnTypeData {
  private String exists;
  private String matr;
  private String marca;
  ....
  }
一种方法是使用hashmap。
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"));
}
%>

最新更新