我不知道我的视图出了什么问题,但它不可能工作,即使设置正确,视图也总是出错。我不知道是否还有其他方法可以做到这一点,但胸腔总是失败。
错误是这样的-
这是我的控制器
@GetMapping("/list-courses-student")
public String listCoursesByUser(@RequestParam(required = false) int page,Model model) {
User currentUser = userService.findByName(this.currentUser.getUsername());
int numberPages = coursesService.getNumberPages();
List<Course> courses = coursesService.findAllCourses(page,true);
model.addAttribute("coursesDisponibles",courses);
model.addAttribute("numberPages",numberPages);
model.addAttribute("currentPage",page);
model.addAttribute("idStudent",currentUser.getStudent().getId());
return "/content/course/list-course-student";
}
我的观点
<div class="card-body table-responsive p-0">
<table class="table table-hover text-nowrap">
<thead>
<tr>
<th>Profesor</th>
<th>Nombre</th>
<th>Description</th>
<th>Code</th>
<th>Inicio</th>
<th>Final</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<th:block th:each="course : ${coursesDisponibles}">
<tr>
<td
th:text="${course.teacher == null} ? 'No Asignado' : ${course.teacher.nombre}"></td>
<td th:text="${course.nombre}"></td>
<td th:text="${course.descripcion}"></td>
<td th:text="${course.code}"></td>
<td
th:text="${#temporals.format(course.inicioDate, 'dd/MM/yyyy')}"></td>
<td
th:text="${#temporals.format(course.finalDate, 'dd/MM/yyyy')}"></td>
<td>
<th:block th:each="student : course.Estudiantes">
<th:block th:if="${student != null}">
<th:block th:if="${student.id == {idStudent}}">
<a class="btn btn-success btn-sm" href="">Añadido</a>
<a class="fas fa-inbox ml-3"
th:href="${'/tareas/list-tareas-student?page=1&course=' + {course.id}}"></a>
</th:block>
</th:block>
<th:block th:unless="${student == null}">
<a
th:classappend="${course.teacher == null} ? 'btn btn-primary btn-sm disabled':'btn btn-primary btn-sm' "
th:href="${'/courses/add?idCourse=' + {course.id} + '&idStudent=' + {idStudent}}">Añadir</a>
</th:block>
</th:block>
</td>
</th:block>
</tr>
</tbody>
</table>
</div>
您最可能遇到的例外是NullPointerException
,因为我认为您有一个错误的th:each
declaration:
<th:block th:each="student : course.Estudiantes">
而不是
<th:block th:each="student : ${course.Estudiantes}">
因此,表达式th: if=${student.id==id学生}
在尝试访问空学生
对象上的id
属性时抛出NullPointerException
。
还要注意,为了防止其他NPE
,您可以使用
运算符,如下所示:
${student?.id}
。
我尝试使用ThymeLeaf处理模板,但我得到。 这是我的代码: 我试图通过添加这样的前缀来更改路径,但它没有帮助: 此错误可能是由路径问题以外的其他原因引起的吗? 如果需要,我可以给我的项目结构的更多细节。 谢谢 编辑: 这是堆栈跟踪,它可能会有所帮助:
我提供了所有的东西,但我不知道为什么我会遇到这种类型的问题,并使用正确的百里叶语法,但它通过一个空异常 我得到了以下类型的错误 page.html PagesController.kt pageRepository.kt 页码.kt 当我在浏览器中调用localhost:8080时,我得到了这种类型的响应。
根据我的理解,模型属性与每个请求相关联,它们不能在多个请求中存活,直到我们将它们添加为flashAttributes。 我有一个简单的控制器方法,它显示了几个选项供用户选择。但是,这些选项正在使用模型属性附加到thymeleaf模板。 假设“recipes”作为模型属性,它被注入到控制器内的modelMap中。 当bean验证失败时,下面的行执行。 selectItem模板被重新渲染,但我在前一个
我不明白,如果html模板与我在ModelAndView中获得的属性链接,如何将RESTFull服务的@Controller更改为@RestController 在胸腺叶模板中 但我想进入索引页面,在后台获取用户名 我可以使用ajax来更新标记“p”,但这样使用thymeleaf并没有什么好处,我可以使用jsp。那么,在Rest时使用thymeleaf的最佳方式是什么?它是否合理?
我需要填写SpringBoot的登记表。为此,我创建了两个类:< code>User和< code>Credentials,第二个类处理唯一的用户名和密码。 这是(处理请求): 现在应该已经准备好了,可以从html表单读取数据,并使用注册新用户。这是<code>注册中的注册表格。html</code>,我的目标是读取用户名和密码,然后创建一个新用户并将其保存在Postgres上: 但是当我导航到r
代码顺序 IndexController 订单控制器 订单生成器 订单服务 html 错误 模板解析时出错(模板:"类路径资源[模板/订单/list.html]") 评估SpringEL表达式的异常:“order.id”(模板:“订单/列表”-第19行,第9栏) EL1008E:在“reactor.core.publisher”类型的对象上找不到属性或字段“id”。FluxOnAssembly’-