2013-08-27 2 views
0

У меня есть проект на Java с JSP + JavaScript + Servlets с функцией в JavaScript, чтобы найти запись в моей базе данных. Когда эта запись найдена, моя функция возвращает некоторое значение, а когда это не так, моя функция возвращает сообщение. Теперь мне нужна другая функция, чтобы вернуть несколько полей из моей базы данных, и я не знаю, кто. Я не очень хорошо знаком с JavaScript и JSP.
EDIT: Я сделал некоторые измененияФункция с несколькими значениями JavaScript + JSP + Servlet

Это часть моего 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, как и в случае с одним значением?

ответ

0

Согласно вашему требованию, заполните все поля в объект и верните этот объект из вызова метода.

например:

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

    } 
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")); 
} 
%> 
+0

спасибо. Я сделал некоторые изменения, как вы мне предложили, но «строка» всегда пуста, я не могу показать значение в моем JSP. Как я уже сказал, я не очень хорошо знаком с JSP и JS. Что мне не хватает? – user1600801

+0

- это запрос базы данных, выполняемый в отдельном методе, из которого вы пытаетесь отобразить значения, или они происходят в одном и том же методе? – chiliNUT

+0

В другом методе ... Мой первый код - это мой JSP, который отображает значения (форма JSP). Мой второй код - это mi JS (где функция find_noeco_s), которая вызывается в моем JSP, а мой третий код - другой JSP, который вызывается из моего JS (processEco.jsp) – user1600801

Смежные вопросы