【发布时间】:2013-12-30 03:40:18
【问题描述】:
我正在使用 Servlets/JSP 管理一个 JDBC 数据库,我在表中拥有的属性之一是一个字符串,它在单词之间可能有也可能没有空格。我有一个 JSP 来显示所有信息,另一个 JSP 来编辑它,我执行 getString 到 ResultSet 并且当我只是显示它时它工作正常,但在编辑 JSP 上它只“抓取”空格前的第一个单词和字符串的其余部分消失。以下是部分代码:
PerfilUsuarioConectado.jsp(我用来显示数据的那个)
<%
Connection conexion = DriverManager.getConnection("jdbc:odbc:gasteizcar", "", "");
Statement set = conexion.createStatement();
ResultSet rs = set.executeQuery("SELECT * FROM Usuario WHERE correoElectronico ='" + session.getAttribute("username") + "'");
rs.next();
%>
<div id="principal">
<table border="1" align="center">
<tr>
<td> Nombre: </td>
<td> <%= rs.getString("nombre")%>
</tr>
<tr>
<td> Apellidos: </td>
<td> <%= rs.getString("apellidos")%>
</tr>
<tr>
<td> E-mail: </td>
<td> <%= rs.getString("correoElectronico")%>
</tr>
<tr>
<td> Alias: </td>
<td> <%= rs.getString("alias")%>
</tr>
<tr>
<td> Nº móvil: </td>
<td> <%= rs.getString("movil")%>
</tr>
<tr>
<td> Coche: </td>
<td> <%= rs.getString("marca") + " " + rs.getString("modelo") + " " + rs.getString("color")%>
</tr>
</table>
</div>
ModificarDatos.jsp(编辑数据的那个)
<%
Connection conexion = DriverManager.getConnection("jdbc:odbc:gasteizcar", "", "");
Statement set = conexion.createStatement();
ResultSet rs = set.executeQuery("SELECT * FROM Usuario WHERE correoElectronico ='"
+ session.getAttribute("username") + "'");
int i = 0;
rs.next();
String marca = rs.getString("marca");
String modelo = rs.getString("modelo");
String color = rs.getString("color");
String movil = rs.getString("movil");
%>
<div id="principal">
<form id="datos" action="ModificarDatos" method="post">
<table border="1" align="center">
<tr>
<td> * Verificar con contraseña: </td>
<td> <input pattern="[a-zA-Z0-9 ]{3,12}" type="password" id="password" name="password" required></td>
</tr>
<tr>
<td> ** Nueva contraseña: </td>
<td> <input pattern="[a-zA-Z0-9 ]{3,12}" type="password" id="nuevaContrasenia" name="nuevaContrasenia"> </td>
</tr>
<tr>
<td> ** Repita la contraseña: </td>
<td> <input pattern="[a-zA-Z0-9 ]{3,12}" type="password" id="repContrasenia" name="repContrasenia"> </td>
</tr>
<tr>
<td> * Nº de móvil: </td>
<td> <input pattern="[0-9]{9}" type="text" name="movil" id="movil" required value=<%= movil%>> </td>
</tr>
<tr>
<td> *** Marca del coche: </td>
<td> <input type="text" name="marca" id="marca" value=<%= marca%>> </td>
</tr>
<tr>
<td> *** Modelo del coche: </td>
<td> <input type="text" name="modelo" id="modelo" value=<%= modelo%>> </td>
</tr>
<tr>
<td> *** Color: </td>
<td> <input type="text" name="color" id="color" value=<%= color%>> </td>
</tr>
</table>
</div>
<input type="button" id="bActualizar" value="Actualizar datos">
所以,如果有人能告诉我为什么 getString 方法在这两种情况下的表现不同,我将不胜感激。
【问题讨论】:
-
不要在 JSP 中编写 scriptlet,因为 scriptlet 不应该在 JSP 中使用超过十年。学习 JSP EL、JSTL,并将 servlet 用于 Java 代码。 How to avoid Java Code in JSP-Files?
-
您能否告诉我们您没有获得完整字符串的字段。一个可能的错误可能是您与输入字段一起使用的模式来验证值。您检查您没有获得完整字符串的字段的模式,如果无法解决,请告诉我们您没有获得哪个行输入的值,因为语言不是英语,所以只需告诉我们行号。
-
感谢您提供有关避免在 JSP 中使用 Java 代码的信息,但问题是我只有 2 天的时间来交付这个项目,而且我无法负担更改它(还有很多“问题”像这样),在我的辩护中,我只有 12 天的时间来做这件事。尽管我只尝试了“Modelo”和“Color”,但我相信它们都不起作用。我会摆脱这些模式并报告回来。谢谢大家!
-
模式不是问题,因为我遇到问题的字段是没有模式的字段。
标签: jsp servlets jdbc spaces getstring