如何获得将数据传递给 mysql db 的 2 个单选按钮列表? Spring开机

How do I get 2 radiobutton list which pass data to mysql db? Spring Boot

这个的主要概念是:我想要有 2 个单选按钮列表。一个与培训师有关,另一个与培训师的活动有关。我有两个问题:

  1. 如何获得 2 个单选按钮列表,其中包含从 mysql 数据库中检索到的数据。

    @Entity
    @Table(name = "trainers")
    public class Trainer {
    
    
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "name")
        private String name;
    
        @Column(name = "pt_done")
        private Integer personalTraining;
    
        @Column(name = "target")
        private Integer target;
    
        @Column(name = "sale")
        private Integer sale;
    
        @Column(name = "steps")
        private Integer steps;
    
        public Trainer() {}
        //+getters and setters
    }
    
    public interface TrainerRepository extends JpaRepository < Trainer, Integer > {
        @Query(value = "select name from trainers", nativeQuery = true)
        List < Trainer > findByName() @Service
        public class TrainerServiceImplementation implements TrainerService {
            private TrainerRepository trainerRepository;
            @Override
            public List < Trainer > findByName() {
                return trainerRepository.findByName();
            }
            @Controller @RequestMapping("/gym")
            public class TrainerController {
                @Autowired
                private TrainerRepository trainerRepository;
                @Autowired
                private TrainerService trainerService;
                @RequestMapping("/hello")
                public String viewHomePage(Model theModel) {
                    theModel.addAttribute("trainers", trainerRepository.findByName());
                    return "welcome";
                }
            }
        }
    }
    

    welcome.jsp

    <form:form action="nextpage" modelAttribute = "trainers" method="POST">
    <input type="radio" name="name" value="${trainers}"/> John Simson
    

    我不知道如何从数据库中检索数据到单选按钮列表。我有四个教练。

  2. 我必须检查第一个单选按钮列表中的一个点和第二个单选按钮列表中的一个点。在我选择了 2 个选项后,我将重定向到新的 JSP 页面(如果选中个人培训 -> 重定向到 personaltraining.jsp,等等)

  3. 如何将数据传递给 mysql table,例如我选择了 John Simson 和 Personal Training,我将填写下一个 jsp 页 personaltraining.jsp,当我填写并发送时,我想将其保存在数据库中。

首先将 Spring Thymeleaf 添加到您的项目中。 (我认为 Spring JPA 存在。)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

以后在Trainer实体里有个id会比较健康。 You can also have a look here.

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

为所有导师带来的资源库和服务可以是这样的。 (您还没有进行私人搜索!)

public interface TrainerRepository extends JpaRepository<Trainer, Integer> {}
public interface TrainerService {
    List<Trainer> findAll();
}
@Service
public class TrainerServiceImpl implements TrainerService {

    private final TrainerRepository trainerRepository;

    public TrainerServiceImpl(TrainerRepository trainerRepository) {
        this.trainerRepository = trainerRepository;
    }

    @Override
    public List<Trainer> findAll() {
        return trainerRepository.findAll();
    }
}
@Controller
@RequestMapping("/gym")
public class TrainerController {

    private final TrainerService trainerService;

    public TrainerController(TrainerService trainerService) {
        this.trainerService = trainerService;
    }

    @GetMapping("/hello")
    public String viewHomePage(Model model) {
        model.addAttribute("trainers", trainerService.findAll());
        return "welcome";
    }
}

现在,如果您将以下代码保存在 resources/templates' folder as welcome.html` 中,您可以从数据库中看到培训师。

<!DOCTYPE HTML>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<body>
<div>
    <form method="post">
        <div>
            <label>Trainers</label>
            <div th:each="trainer : ${trainers}">
                <div>
                    <input type="radio" name="trainer" th:value="${trainer.id}" th:text="${trainer.name}">
                </div>
            </div>
        </div>
        <button type="submit">Submit Form</button>
    </form>
</div>
</body>
</html>

结果就是这个图