#javascript #java #spring #rest
#javascript #java #весна #остальное
Вопрос:
На моей index
странице у меня есть кнопка для перенаправления на страницу учителей.
index.html
:
Здесь у меня есть кнопка <button id="getAllTeachers" type="button" class="btn btn-primary">Teachers</button>
, а также у меня есть один скрипт здесь :
<script>
document.querySelector('#getAllTeachers')
.addEventListener('click',() => {
window.location.href = "/teacherController/check"
});
</script>
Когда я нажимаю на кнопку выше, конечно, она перенаправляет на мой TeacherController
класс, а ниже я прикрепил код из контроллера и мою попытку передачи параметров на HTML-страницу:
RestController
@RequestMapping("/teacherController")
public class TeacherController {
private static final String TEACHER_MODEL = "teacher";
@Autowired
TeacherService teacherService;
@RequestMapping("check")
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject(teacherService.getAll());
modelAndView.setViewName("/teacherViews/teachersPage");
return modelAndView;
}
teacherViews/teachersPage
:
<script src="/getTeachers.js"></script>
<div class="container">
<table class="teacherTable" border="1" width="100%" cellpadding="5">
<thead>
<th>TEACHER ID</th>
<th>TEACHER NAME</th>
<th>TEACHER POSITION</th>
<tbody id="teacherBody">
</tbody>
</table>
И getTeachers.js
:
GET: $(document).ready(
function () {
// GET REQUEST
$("#getAllTeachers").click(function (event) {
event.preventDefault();
ajaxGet();
});
// DO GET
function ajaxGet() {
$.ajax({
type: "GET",
url: "teacherController/check",
success: function (result) {
if (result.status == "success") {
var custList = "";
$.each(result.data,
function (i, teacher) {
var Html = "<tr>"
"<td>" teacher.teacherId "</td>"
"<td>" teacher.teacherName "</td>"
"<td>" teacher.position "</td>"
"</tr>";
console.log("Teacher checking: ", teacher);
$('#teacherBody').append(Html);
});
console.log("Success: ", result);
} else {
console.log("Fail: ", result);
}
},
error: function (e) {
console.log("ERROR: ", e);
}
});
}
})
Моя проблема в том, что мне нужно распечатать всех учителей, которые у меня есть в моей базе данных, но она печатает только имена столбцов таблицы без данных..
Ответ №1:
Хорошей идеей будет указать идентификатор объекта, который возвращает ваш Controller
метод проверки. (Я не мог понять, что вы пытаетесь сделать с Ajax.)
modelAndView.addObject("teachers", teacherService.getAll());
Таблица, в которой вы показываете учителей, должна быть такой.
<table>
<thead>
<tr>
<th>Teacher ID</th>
<th>Teacher Name</th>
<th>Teacher Position</th>
</tr>
</thead>
<tbody id="teacherBody">
<tr th:each="teacher : ${teachers}">
<td th:text="${teacher.id}" />
<td th:text="${teacher.name}" />
<td th:text="${teacher.position}" />
</tr>
</tbody>
</table>
Комментарии:
1. Я не мог понять, что вы пытаетесь сделать с Ajax. — вы сказали выше. Могу ли я заменить метод контроллера на запрос AJAX get? Мне нужно использовать в проекте RestController, поэтому, вероятно, мне нужно получить всех учителей из файла js? Если это необходимо, можете ли вы помочь с этим?
2. Да, конечно, вы можете автоматически загружаться при открытии страницы или автоматически загружаться нажатием кнопки и т. Д. Обычно повороты должны быть
DTO
моделями, а не страницами. Смотрите mkyong.com/spring-boot/spring-boot-ajax-example