【发布时间】:2021-09-17 21:41:08
【问题描述】:
我正在尝试使用 JSP 创建网页,主页返回并显示从数据库到 JSP 文件的日期,并且有一个编辑按钮允许编辑消息并因此进行编辑数据库中的数据,我通过声明修改了显示主页的文本
String convert = rs.getString("template"); 然后打印 convert 但是当我单击 edit 时,文本显示为来自数据库,尽管文本包含 br 标签;它显示没有新行。
这里是主页面的运行
这里是编辑页面的运行
我尝试更改获取数据的方式,如 img No. 3 所示,但它也对我不起作用
我的问题是在这种情况下如何插入新行?
代码按预期运行,只是这个显示问题。 这是 Edit.JSP 的代码
<%@ page language="java" contentType="text/html; charset=windows-1256"
pageEncoding="windows-1256" import="java.io.*" import="java.sql.*"
import="java.util.*" import="javax.sql.*"%>
<!DOCTYPE html>
<html>
<body>
<%
String url = "jdbc:sqlserver://DESKTOP-SQ7B6EQ;databaseName=JsonToSql";
String username = "";
String password = "";
Statement stmt = null;
ResultSet rs = null;
PreparedStatement ps = null;
Connection con = null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
con = DriverManager.getConnection(url, username, password);
%>
<form method="post" action="">
<%
stmt = con.createStatement();
String u = request.getParameter("u");
int num = Integer.parseInt(u);
String data = "select * from DatabaseMsgs where id = '" + num + "' ";
rs = stmt.executeQuery(data);
while (rs.next()) {
%>
<h3 align="left"
style="Color: white; font-size: 18px; color: black; font-family: 'Exo 2', sans-serif;">
Welcome to edit page</h3>
<input class="container" type="hidden" name="id"
value="<%=rs.getString("id")%>">
<table border="0">
<tr align="left"
style="font-weight: bold; font-family: 'Festive', curesultive; text-transform: capitalize; font-size: 15px; color: #203bd6">
<td>code:</td>
<td><input type="text" name="code"
value='<%=rs.getString("code")%>' /></td>
</tr>
<%-- <%
String convert = rs.getString("template").replaceAll("EmployeeName:", "Employee Name:")
.replaceAll("Luc", "Lucation").replaceAll("TelephoneNo", "Telephone No.").replaceAll("E-mail", "E-mail:")
.replaceAll("Mobile", "Mobile No. : ").replaceAll("phoneExtension", "phone Extension No.:")
.replaceAll("[* \\ ----------------------- ]", " ").replaceAll("\\[", "").replaceAll("\\]", "");
%> --%>
<tr align="left">
<td
style="font-weight: bold; font-family: 'Festive', curesultive; text-transform: capitalize; font-size: 15px; color: #203bd6">template:</td>
<td><input type="text" style="width: 100ch; height: 30ch;"
name="template" value='<%=rs.getString("template")%>' /></td>
</tr>
<tr align="left" valign="top">
<td></td>
<%
}
%>
<td><button type="submit" class="btn btn-warning" >Edit</button></td>
</tr>
</table>
</form>
</body>
</html>
<%
String a = request.getParameter("id");
String b = request.getParameter("code");
String c = request.getParameter("template");
if (a != null && b != null && c != null) {
String query = "update DatabaseMsgs set code = ? , template=? where id = '" + a + "' ";
ps = con.prepareStatement(query);
ps.setString(1, b);
ps.setString(2, c);
ps.executeUpdate();
response.sendRedirect("Home.jsp");
}
%>
`
【问题讨论】:
-
您可以检查未在新行上显示的元素并在您的问题上分享图像吗?
-
您可以尝试使用
\n而不是<br>,因为目前尚不清楚您要在哪里添加新行。 -
@skr 我尝试使用 \n 而不是 br 标签,但它不起作用。正如您在附加的 img No.1 中看到的那样,这些是我希望我的文本采用的格式。员工姓名:
手机号码:
-
@skr 我也尝试使用 `rs.getString("template").replaceAll("
" , "\n")`,但它也不起作用:(跨度> -
如果我理解清楚,您希望编辑页面模板字段中带有
<br>的字符串以新行显示?
标签: java html css database jsp