gpt4 book ai didi

java - 如何使用JSP页面中的参数来搜索Java类中的数据?

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:00 26 4
gpt4 key购买 nike

这是迄今为止我的项目的屏幕截图:

enter image description here

这个程序的目的是从我的 servlet 中的 ArrayList 中找到特定的类。您可以从左侧定义的内容中搜索所需的类(class)(即 X 地点、Y 学期和 Z 老师的类(class))。到目前为止,使用此代码,我可以检索屏幕截图中显示的每个类:

脚本:

//Serves up the data THIS IS THE WHAT GETS THE TABLE DATA
$('#btnData').click(function() {

$("#searchAnimation").fadeTo(0,1, function(){
$.get('daoServlet', function(responseText) {
$('#dataDisp').html(responseText);
}).complete(function(){$("#searchAnimation").fadeTo(0,0);});
});

});

Java:

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//String that gets returned as HTML
StringBuilder returnAsHTML = new StringBuilder();

//See if the class is closed, has a lab, or is just a regular class
for(ClassInfo classes : allClassListings)
{
//Class is full, style accordingly
if(classes.getSectionMeetingInfo().contentEquals("LEC") && classes.getSectionEnrolled().contentEquals("0"))
{
returnAsHTML.append(closedClass(classes));
}
else if(classes.getSectionMeetingInfo().contentEquals("LAB")) //These are labs, style accordingly
{
returnAsHTML.append(labClass(classes));
}
else //These are normal classes without lab components
{
returnAsHTML.append(openClass(classes));
}

}

response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(returnAsHTML.toString());
}

我的问题是,我如何开始发送​​用户在JSP页面上选择的数据,然后通过ArrayList排序来找到它?我知道我可以使用 <%//code %> 将 java 代码直接注入(inject) JSP 页面,但由于项目要求,我无法在页面本身的主体中编写脚本,它全部链接到外部。

例如,如果用户在位置下选中了“斯普林菲尔德”,并在学期下说“夏季”,则应该生成一个包含夏季期间斯普林菲尔德所有类(class)的表格。 我只是不知道如何/从哪里开始学习如何发送这些参数以在 servlet 中进行搜索。

最佳答案

根据 the $.get() documentation ,您可以传递 JS 对象作为第二个参数(在文档中称为 data)。

因此,下面的示例应该适合您:

// Do your thing to prepare them.
var param1 = "value1";
var param2 = "value2";

// Now send it as JS object.
$.get('daoServlet', { param1: param1, param2: param2 }, function(responseText) {
// ...
});

它们位于 HttpServletRequest#getParameter() 提供的 servlet 中通常的方式。

String param1 = request.getParameter("param1"); // value1
String param2 = request.getParameter("param2"); // value2

如果你实际上是在ajax化 HTML <form> ,那么您还可以使用 $.serialize() 发送整个表单数据,而不是手动摆弄各个输入元素的松散值。下面是一个示例,假设它是 <form id="search"> :

$.get('daoServlet', $('#search').serialize(), function(responseText) {
// ...
});

$('#search').submit(function() {
$.get('daoServlet', $(this).serialize(), function(responseText) {
        // ...
    });
});

另请参阅:

关于java - 如何使用JSP页面中的参数来搜索Java类中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14465839/

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