Как исправить проблему с шаблонами в приложении Java Spring? - PullRequest
0 голосов
/ 15 апреля 2019

Я создаю приложение с Spring Framework и Postgresql в качестве базы данных. Предполагается, что это будет база данных для студентов, где они смогут увидеть свои оценки и курсы, а учителя смогут увидеть свои оценки, всех студентов, все курсы, в основном администраторов. Права и каждый пользователь может выполнять CRUD. Он использует шаблон MVC. Я настроил tomcat на порт 8010. Когда я пытаюсь получить к нему доступ с помощью: localhost: 8010 / Teacher, я получаю «страницу ошибки Whitelabel». В журналах Java у меня есть «Не могу найти расположение шаблона: classpath: / templates / (пожалуйста, добавьте несколько шаблонов или проверьте конфигурацию Thymeleaf)» Однако у меня есть HTML-страница для учителя.

Я пытался изменить шаблон или даже использовать простой шаблон для вывода некоторого текста, не работает. Я понятия не имею, что я делаю неправильно. Я новичок в Spring и плохо разбираюсь в html.

Модель класса:

package M.Entities;

import javax.persistence.*;

@Entity
@Table(name = "Teacher")
public class Teacher{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    @Column(name="name", nullable = false)
    private String name;
    @Column(name="address", nullable = true)
    private String address;
    @Column(name="email",nullable = false)
    private String email;
    @Column(name="age")
    private Integer age;
    @Column(name="passsword",nullable = false)
    private String password;

   //with getters and setters and constructor

Класс TeacherService

@Service
public class TeacherService {
    private int count;

    @Inject
    TeacherRepository teacherRepository;

    public List<Teacher> getAllTeachersWithCourses()
    {
        return teacherRepository.findAll();
    }

    public void create(Teacher newTeacher)
    {
        System.out.println("aaaa"+newTeacher);
         teacherRepository.save(newTeacher);
    }
    public void delete(Teacher newTeacher)
    {
         teacherRepository.delete(newTeacher);
    }

Учитель классаКонтроллер


@Controller
public class TeacherController {

    @Inject
    TeacherService teacherService;

    @RequestMapping(value = "/Teacher", method = RequestMethod.GET)
    public ModelAndView getTeachers()
    {
        List<Teacher> teacherList = teacherService.getAllTeachersWithCourses();


        ModelAndView mav = new ModelAndView("TeacherView");
        mav.addObject("teachersWithCoursesList", teacherList);

        return mav;

    }
    @RequestMapping(value = "/Teacher", method = RequestMethod.POST)
    public ModelAndView postTeacher(@ModelAttribute(value = "newTeacher") Teacher newTeacher)
    {
        teacherService.create(newTeacher);
        return new ModelAndView("redirect:teachers");

    }
    @RequestMapping(value = "/Teacher", method = RequestMethod.POST)
    public void createTeacher(@ModelAttribute(value = "newTeacher") Teacher newTeacher)
    {
        System.out.println(newTeacher);

        teacherService.create(newTeacher);
        //System.out.println("after creation"+th);
       // return  newTeacher;
    }

    @RequestMapping(value = "/Teacher", method = RequestMethod.DELETE)
    public ModelAndView deleteTeacher(@ModelAttribute(value = "newTeacher") Teacher newTeacher)
    {
        teacherService.delete(newTeacher);

        return new ModelAndView("redirect:teachers");

    }
    @RequestMapping(value = "/Teacher", method = RequestMethod.POST)
    @ResponseBody
    public void set(@RequestParam("idTeacher") Integer idTask, @RequestParam("name") String description, @RequestParam("password") String filepath, @RequestParam("address") String str, @RequestParam("email") String ema,@RequestParam("age")Integer it){

// assign parameters to taskDocumentEntity by constructor args or setters
        Teacher document = new Teacher(idTask,description,filepath,str,ema,it);
        teacherService.create(document);
    }

Страница учителя по HTML

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:th1="http://www.w3.org/1999/xhtml">

<head>
    <title>Teachers</title>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" />

</head>

<body>


<table  border="1">
    <thead>
    <tr>
        <th>teacher.ID</th>
        <th>teacher.NAME</th>
        <th>teacher.PASSWORD</th>
        <th>teacher.EMAIL</th>
        <th>teacher.AGE</th>
        <th>course entire data</th>
    </tr>
    </thead>
    <tbody>
    <tr th:each="teacher : ${ teachersWithCoursesList }">

        <td th:text="${ teacher.id }">ID</td>
        <td th:text="${ teacher.name }"></td>
        <td th:text="${ teacher.password }"></td>
        <td th:text="${ teacher.email }"></td>
        <td th:text="${ teacher.age }"></td>
        <td th1:text="${ teacher.courses }">
            <p th:each="course: ${ teacher.courses  }">
                <span th:text="${course.id}"></span>
                <span th:text="${course.name}"></span>
            </p>
        </td>
    </tr>
    </tbody>
</table>

<br/>
<br/>
<br/>

<form   th:object="${newTeacher}" method="post">
    <div class="col-sm-12">
        <label>Name</label>
        <input placeholder="Teacher Name" name="name"/>
    </div>
    <div class="col-sm-12">
        <label>Password</label>
        <input placeholder="Teacher password" name="password"/>
    </div>
    <div class="col-sm-12">
        <label>speciality</label>
        <input placeholder="Teacher speciality" name="speciality"/>
    </div>
    <div class="col-sm-12">
        <label>Email</label>
        <input placeholder="Teacher email" name="email"/>
    </div>

    <button type="submit" class = "btn btn-primary">ADD Teacher</button>
</form>

</body>

У меня также есть репозиторий jpa для учителя, но в нем нет строк реального кода, поскольку он выполняет роль расширения JPA.

Чтобы увидеть страницу на локальном хосте: 8010 / Учитель. Любые советы по улучшению написания, оптимизации или любые источники, которые я мог бы изучить Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...