当前位置: 首页 > 知识库问答 >
问题:

百里香叶错误:模板解析期间出错

杨高翰
2023-03-14

我不知道我的视图出了什么问题,但它不可能工作,即使设置正确,视图也总是出错。我不知道是否还有其他方法可以做到这一点,但胸腔总是失败。

错误是这样的-

这是我的控制器

@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>

共有1个答案

羊禄
2023-03-14

您最可能遇到的例外是NullPointerException,因为我认为您有一个错误的th:eachdeclaration:

<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’-