具有多个值的函数JavaScript + JSP + Servlet

时间:2013-08-27 03:16:30

标签: java javascript jsp servlets

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

2 个答案:

答案 0 :(得分:0)

根据您的问题要求,将所有字段添加到对象中,并从方法调用中返回该对象。

例如:

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

  }

答案 1 :(得分:0)

一种方法是使用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"));
}
%>