#arrays #image #jsp #arraylist #methods
#массивы #изображение #jsp #arraylist #методы
Вопрос:
У меня есть 2 метода, которые извлекают его из видео, чтобы иметь возможность перечислять изображения из базы данных в мой ssitea в jsp, что происходит, так это то, что моя система перечисляет изображения одного человека, и они повторяются, когда должна отображаться фотография каждого
способ перечисления
public ArrayList<CitaVO> listarCitas(String cliente_idCliente) {
CitaVO citVO = null;
conexion = this.obtenerConexion();
ArrayList<CitaVO> listaCitas = new ArrayList<>();
try {
sql = "SELECT * FROM vwcitasactivas WHERE cliente_idCliente=?";
puente = conexion.prepareStatement(sql);
puente.setString(1, cliente_idCliente);
mensajero = puente.executeQuery();
while (mensajero.next()) {
citVO = new CitaVO(mensajero.getString(1),
mensajero.getString(2), mensajero.getBinaryStream(3),
mensajero.getString(4), mensajero.getString(5),
mensajero.getString(6), mensajero.getString(7),
mensajero.getString(8), mensajero.getString(9),
mensajero.getString(10), mensajero.getString(11),
mensajero.getString(12),cliente_idCliente);
listaCitas.add(citVO);
}
} catch (Exception e) {
Logger.getLogger(ProAgendaDAO.class.getName()).log(Level.SEVERE, null, e);
}
return listaCitas;
}
способ отображения списка изображений
public void listarImg(String cliente_idCliente,HttpServletResponse response){
InputStream inputStream= null;
OutputStream outputStream=null;
BufferedInputStream bufferedInputStream=null;
BufferedOutputStream bufferedOutputStream=null;
response.setContentType("image/*");
try {
conexion = this.obtenerConexion();
sql = "SELECT * FROM vwcitasactivas WHERE cliente_idCliente=?";
outputStream=response.getOutputStream();
puente = conexion.prepareStatement(sql);
puente.setString(1, cliente_idCliente);
mensajero = puente.executeQuery();
if (mensajero.next()) {
inputStream=(mensajero.getBinaryStream(3));
}
bufferedInputStream=new BufferedInputStream(inputStream);
bufferedOutputStream=new BufferedOutputStream(outputStream);
int i=0;
while((i=bufferedInputStream.read())!=-1){
bufferedOutputStream.write(i);
}
} catch (SQLException e) {
Logger.getLogger(CitaDAO.class.getName()).log(Level.SEVERE, null, e);
} catch (IOException ex) {
Logger.getLogger(CitaDAO.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
Conexion conexBd = new Conexion();
conexBd.cerrarConexion();
} catch (SQLException e) {
Logger.getLogger(CitaDAO.class.getName()).log(Level.SEVERE, null, e);
}
}
}
мой jsp-код
<%
<%
CitaVO citVO = new CitaVO();
CitaDAO citDAO = new CitaDAO();
ArrayList<CitaVO> listaCitas = citDAO.listarCitas(idCliente);
for (int i = 0; i < listaCitas.size(); i ) {
citVO = listaCitas.get(i);
%>
<tr>
<td>
<div class="round-img">
<a href=""><img src="ImagenControlador?idCliente=<%=idCliente%>" alt="" width="50px" height="50px" ></a>
</div>
</td>
<td><%=citVO.getUsuNombre()%> <%=citVO.getUsuApellido()%></td>
<td><%=citVO.getUsuCiudad()%></td>
<td><%=citVO.getCitFecha()%></td>
<td><%=citVO.getProDia()%></td>
<td><%=citVO.getCitDireccion()%></td>
<td><%=citVO.getCitHoraInicio()%></td>
<td><%=citVO.getCitHoraFin()%></td>
<td <%=citVO.getCitEstado()%>><span class="badge badge-primary">Activa</span></td>
<td style="text-align: center">
<span><a href="Cita?opcion=6amp;textId=<%=citVO.getIdCita()%>amp;textEstado=<%=citVO.getCitEstado()%>"><i class="ti-eye color-default" style="font-size: 18px"></i></a> </span>
<span><a href="Cita?opcion=7amp;textId=<%=citVO.getIdCita()%>"><i class="ti-pencil-alt color-success" style="font-size: 18px"></i></a></span>
<span><a href="Cita?opcion=3amp;textId=<%=citVO.getIdCita()%>amp;textEstado=<%=citVO.getCitEstado()%>" class="btn sweet-confirm" onclick="return cancelarCita(event)"><i class="ti-trash color-danger" style="font-size: 18px"></i> </a></span>
</td>
</tr>
<%}%
это мои два метода для перечисления информации и изображений и мой код jsp, в котором я перечисляю все, и следующий результат следующий
Как вы можете видеть, я указываю одно и то же изображение, когда у последнего человека должна быть совершенно другая фотография, я не знаю, почему это происходит, я отвечаю на любые вопросы в комментариях
Комментарии:
1. Привет, что
idCliente
в нем есть? Вы где-нибудь меняете ее значение? и в вашем коде вы передаете то жеidCliente
самое своему бэкэнду для загрузки изображения, я думаю, что оно имеет одинаковое значение каждый раз.2. Я использую идентификатор клиента для перечисления людей с одинаковым идентификатором, в данном случае это 2 человека, первые два на фотографии и последний
3. Да, это проблема, когда вы вызываете свой код только с первой записью, которая
id
является выборкой, поэтому из серверной части извлекается только одна фотография. Для извлечения изображений следует использовать что-то другое, уникальное для всех записей.4. пример, пожалуйста
5. я имею в виду, что вместо передачи
id
передайте другой столбец , который уникален для всех записей .