Ниже приведен мой код jsp.Как фильтровать результат, заданный c: forEach, используя значение, выбранное в раскрывающемся списке?
<c:forEach items="${nameList}" var="studentList">
<tr>
<td style="padding-bottom: .5em;">
<a id="student" href="number?regNo=<c:out value="${studentList.regNo}"/>">
<span class="eachStudent">
<span class="studentName"><c:out value="${studentList.name}"/></span><br/>
<span class="collName"><c:out value="${studentList.collName}"/></span><br/>
<span class="deptName"><c:out value="${studentList.deptName}"/></span><br/>
</span>
</a>
</td>
</tr>
</c:forEach>
c:forEach
Вышеприведенные списки
Name CollName DeptName
ABCD coll1 dept1
kfkdb coll1 dept2
jbdd coll2 dept3
После код, который перечисляет collName
и deptName
соответственно.
<div>
Filter students by College (not required):
<select id="byCollege" name="byCollege" >
<c:forEach items="${uniqueCollList}" var="uniqueCollList">
<option value="${uniqueCollList}"/>
${uniqueCollList}</option >
</c:forEach >
</select >
</div>
<div>
Filter students by Department Name (not required):
<select id="byDept" name="byDept" >
<c:forEach items="${uniqueDeptList}" var="uniqueDeptList">
<option value="${uniqueDeptList}"/>
${uniqueDeptList}</option >
</c:forEach >
</select >
</div>
Теперь, когда я выбираю значение из первого выпадающего списка, я хочу, чтобы отфильтровать результаты, данные foreach
с использованием значения, выбранного в раскрывающемся списке. Я хотел бы сделать это в самом конце фронта, скорее перейдя на задний план. Могу ли я узнать, как я могу это сделать?
После фильтрации результата c:foreach
с использованием значения первого выпадающего списка, если я выбираю значение во втором раскрывающемся списке, я хочу, чтобы обновленный результат от c:foreach
был отфильтрован с использованием значения, выбранного во втором раскрывающемся списке.
Как это сделать?
Если я хочу сделать это в конце, что мне делать?
PS: Ниже код контроллера, который посылает список в первый раз
@RequestMapping(value = "/name", method = RequestMethod.POST, params = { "studentName" })
public String searchStudentByCollOrDept(@RequestParam(value = "studentName", required = true)String studentName, ModelMap model){
List<OneStudentResult> nameList = resultService.getStudentList(studentName);
//TODO, null value check.
if(nameList.size() == 0 || nameList == null){
return "header";
}
if(nameList.size() != 0){
// Iterate the list that we get and add only one time a collName and deptname.So a Treeset.
Set<String> uniqueCollList = new TreeSet<String>();
Iterator<OneStudentResult> itr = nameList.iterator();
while(itr.hasNext()){
String collName = itr.next().getCollName();
if(!uniqueCollList.contains(collName)){
uniqueCollList.add(collName);
}
}
uniqueCollList.add(" Select a College ");
model.addAttribute("uniqueCollList", uniqueCollList);
Set<String> uniqueDeptList = new TreeSet<String>();
Iterator<OneStudentResult> itrDeptList = nameList.iterator();
while(itrDeptList.hasNext()){
String deptName = itrDeptList.next().getDeptName();
if(!uniqueDeptList.contains(deptName)){
uniqueDeptList.add(deptName);
}
}
uniqueDeptList.add(" Select a Department ");
model.addAttribute("uniqueDeptList", uniqueDeptList);
}
model.addAttribute("nameList", nameList);
return "nameResult";
}
Wow. Потрясающие. Хорошо объяснил, и я ожидал, что это будет сложно сделать на стороне клиента. Могу ли я получить образец кода jQuery для этого случая? Было бы очень полезно. – user3705478
Большое спасибо.Я также обновил код контроллера. Если бы вы помогли мне, добавив рабочий код, это будет очень полезно. Я не знаю AJAX или JSON. Я участвую в процессе обучения js и только что завершил html и jsp. Еще раз спасибо. – user3705478
Итак, вы используете Spring MVC framework. Это немного усложняет ситуацию, поскольку я не такая семья с весной. Но я все равно попытаюсь дать вам несколько рабочих примеров. Хотя это может занять некоторое время. – Frank