html 형식의 데이터를 데이터베이스에 게시해야합니다. 나는 springboot와 thymeleaf로 gradle 프로젝트를 가지고있다. 나는 자바 객체 클래스 마녀에는 ID, 이름, 묘사, 교사 및 분이있다. html에서는 모덜 양식을 사용하여 ID 이외의 모든 것을 요청합니다.Spring + Thymeleaf : 모달 형식의 데이터 게시
@Controller
public class ScheduleController {
@Autowired
private ClassService classService;
@Autowired
private StudentService studentService;
@RequestMapping(value = "/addClass", method = RequestMethod.POST)
public String addClass(@RequestAttribute("class") Class newClass, Model model) {
classService.addClass(newClass);
return "main";
}
오류 메시지가, 내가 얻을 수 있습니다 : : java.lang.IllegalStateException : BindingResult도 일반 대상 객체 어느
main.html<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Class Scheduler</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="webjars/bootstrap/4.0.0-beta.2/css/bootstrap.min.css"/>
<script type="text/javascript" src="webjars/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="webjars/bootstrap/4.0.0-beta.2/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<h2>Class Scheduler</h2>
<div class="text-right">
<button type="button" class="btn btn-success" data-toggle="modal" data-target="#addClassModal">Add new class</button>
</div>
<div class="modal fade" id="addClassModal" tabindex="-1" role="dialog" aria-labelledby="addClassModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="addClassModalLabel">Add new class</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form th:action="@{/addClass}" th:object="${class}" method="post">
<div class="form-group">
<label for="name">Name:</label>
<input type="text" class="form-control" id="name" th:value="*{name}"/>
</div>
<div class="form-group">
<label for="description">Description:</label>
<input type="text" class="form-control" id="description" th:value="*{description}"/>
</div>
<div class="form-group">
<label for="teacher">Teacher:</label>
<input type="text" class="form-control" id="teacher" th:value="*{teacherName}"/>
</div>
<div class="form-group">
<label for="minutes">Minutes:</label>
<input type="number" class="form-control" id="minutes" th:value="*{timeMinutes}"/>
</div>
<input type="submit" value="Submit" />
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
그리고 내 컨트롤러는 다음과 같다 요청 속성으로 사용할 수있는 bean 이름 'class'에 대해.
내가 뭘 잘못하고 있니?
편집 : 내 ClassService은 다음과 같습니다 : 여기
@Service
public class ClassService{
private static final BeanPropertyRowMapper<Class> CLASS_ROW_MAPPER = BeanPropertyRowMapper.newInstance(Class.class);
@Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
public void addClass(final Class newClass) {
MapSqlParameterSource in = new MapSqlParameterSource();
in.addValue("id", newClass.getId());
in.addValue("name", newClass.getName());
in.addValue("description", newClass.getDescription());
in.addValue("teacher_name", newClass.getTeacherName());
in.addValue("time_minutes", newClass.getTimeMinutes());
namedParameterJdbcTemplate.update("INSERT INTO class(name, description, teacher_name, time_minutes) values(:name,:description,:teacher_name,:time_minutes)", in);
}
ClassService 클래스를 게시 할 수 있습니까? – TruckDriver