gpt4 book ai didi

java - 使用 SQL 数据库中的值过滤 JSP 上的表值

转载 作者:行者123 更新时间:2023-12-03 10:42:57 24 4
gpt4 key购买 nike

我正在尝试创建一个基于 servlet 的应用程序,该应用程序从 SQL 数据库获取值并将它们呈现在 JSP 上动态创建的表中,该表已经在工作。下一步是创建某种过滤器,仅显示其中一列中具有特定值的表行。我的想法是添加一个下拉菜单并选择“问题”列中包含该项目的行。我认为这有点简单。问题是要填写该下拉菜单的值位于 SQL 数据库的“问题”表中;它的每一行都有 id 和 name 属性。目前,我正在尝试使用 name 属性,并尝试将其与从我的查询 (SQL Server 2008 R2) 中获取的“问题”列进行比较 (

SELECT h.[name], c.[department], p.[name] AS problem, it.[name] AS interaction, ip.[title], ip.[date]
FROM [Database].[dbo].[Input] ip, [Database].[dbo].[Interaction] it, [Database].[dbo].[Problem] p, [Database].[dbo].[HelpdeskUser] h, [Database].[dbo].[Costumer] c
WHERE h.[id] = ip.[user_id]
AND it.[id] = ip.[interaction_id]
AND c.[id] = ip.[costumer_id]
AND p.[id] = ip.[problem_id]
ORDER BY date DESC";

),但是,显然,我正在用头撞墙,因为这不起作用。所以我想问你是否可以帮助我解决这个问题,以及我是否忽略了一些可以解锁整个过程的明显的东西。

ViewInputServlet.java

public class ViewInputServlet extends GenericServlet {

public static final String PROBLEMS = "problems";
public static List<Problem> problems;

private void setProblems(HttpServletRequest req, HttpServletResponse resp) throws EmptyResultSetException {
Session session = HibernateUtilities.getSessionFactory().openSession();
if (ProblemDAO.hasRecords(session)) {
problems = ProblemDAO.selectProblems(session);
req.setAttribute(PROBLEMS, problems);
}
}
}

ViewInput.jsp

<% List<Problem> problems = (List<Problem>) request.getAttribute(ViewInputServlet.PROBLEMS); %>
<div class="innerField">
<table class="datatable" id="tableResults">
<thead>
<tr>
<th>NAME</th>
<th>DEPARTMENT</th>
<th>PROBLEM</th>
<th>TITLE</th>
<th>DATE</th>
</tr>
</thead>
<% for (Issue issue : (List<Issue>) request.getAttribute(ViewInputServlet.LIST)) {%>
<tr>
<td><%=issue.getName()%></td>
<td><%=issue.getDepartment()%></td>
<td id="prob_type"><%=issue.getProblem()%></td>
<td><%=issue.getTitle()%></td>
<td><%=issue.getDate()%></td>
</tr>
<%}%>
</table>
<div class="label">Show by Problems: </div>
<div class="field">
<div class="ui-widget">
<select name="<%=ViewInputServlet.PROBLEMS%>" id="chooseProblems">
<%if (problems != null) {
for (Problem problem : problems) {%>
<option value="<%=problem.getName()%>"><%=problem.getName()%></option>
<%}
}%>
</select> <input type="button" value="Reset" id="btn_reset" />
</div>
</div>
</div>

(“问题”列是这里的关键:这是我想要用来过滤值的列​​,这就是为什么我在之前失败的尝试中给它一个 ID)

函数.js

$("#chooseProblems").change(function () {
$("#tableResults").find("td").each(function () {
if ($(this).text !== $("#chooseProblems").val())
$(this).hide();
else
$(this).show();
});
});

如果您需要更多信息或对我的推理有疑问,请询问:)

最佳答案

Java 脚本中的字符串比较是否存在问题。你应该使用 match 方法而不是 !==.

此外,当您说 $(this).text 或 $(this).hide 或 $(this).show 时,您实际上指的是行的列而不是行。

关于java - 使用 SQL 数据库中的值过滤 JSP 上的表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28695533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com