Учусь использовать thymeleaf, пока идет туго. Есть admin, только он может добавить новую команду, т е надо создать форму, где надо ввести имя команды и нажать кнопку добавить команду
admin.html
<form action="#" th:action="@{/admin}" th:object="${team}" method="post">
<p>Add Team: <input type="text" th:field="*{name}" /></p>
<p><input type="submit" value="addTeam" />
</form>
Правильно ли я понимаю,что,что я написал -
th:action="@{/admin}"
- на странице admina
th:object="${team}
- из класса Team
method="post"
- "запости"
Add Team: <input type="text" th:field="*{name}"
- текстовое поле с именем(т е team.name)
input type="submit" value="addTeam"
кнопка addTeam
Team
@Entity
@Table(name="team")
public class Team {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
@Column
String name;
@Column
String url;
@Lob
@Column(name = "avatar",nullable = true,columnDefinition="BLOB")
String avatar;
@OneToMany(mappedBy="team",cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
Set<Users> users = new HashSet<>();
public Team() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public Set<Users> getUsers() {
return users;
}
public void setUsers(Set<Users> users) {
this.users = users;
}
}
AdminController
@Controller//RestController
public class AdminController {
@RequestMapping(value = "/admin/team", method = RequestMethod.POST,produces = { MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE })
public ResponseEntity<Team> addTeam(@RequestBody Team team) {
Team newTeam = new Team();
newTeam.setName(team.getName());
newTeam.setUrl(team.getUrl());
newTeam.setAvatar(team.getAvatar());
newTeam = teamRepository.save(newTeam);
return new ResponseEntity<Team>(newTeam, HttpStatus.OK);
}
.....
@RequestMapping(value = "/admin", method = RequestMethod.GET)
public String adminPage(Model model) {
model.addAttribute("admin",new Team());
return "admin";
}
Добавлю ошибки
org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/admin.html]")
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
.....
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'Team' available as request attribute
надо было создать и добавить форму в admin
public class TeamForm {
private String name;
private String url;
public TeamForm() {
}
public TeamForm(String name, String url) {
this.name = name;
this.url = url;
}
public TeamForm(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
В контролере
@RequestMapping(value = "/admin", method = RequestMethod.GET)
public String adminPage(Model model) {
model.addAttribute("teamForm",new TeamForm());
model.addAttribute("eventForm",new EventForm());
return "admin";
}
@RequestMapping(value = "/admin/team" , method = RequestMethod.GET)
public String teamList(Model model) {
model.addAttribute("teamForm", allTeams());
return "teamList";
}
и teamList.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Team List</h1>
<br/><br/>
<div>
<table border="1">
<tr>
<th>Team Name</th>
<th>Team Url</th>
</tr>
<tr th:each ="tm : ${teamForm}">
<td th:utext="${tm.name}">...</td>
<td th:utext="${tm.url}">...</td>
</tr>
</table>
</div>
<button type="button" onclick="window.history.go(-1);">Back</button>
</body>
</html>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть класс UserDTO и класс CarDTO
Делаю скрипт, который будет загружать картинку в библиотеку медиафайловДвижок WordPress, но скрипт(самопис), который выполняет загрузку, к движку...
Как подключить библиотеку phpQuery к yii2 через composer? Объясните поподробнее пожалуйста))))) Заранее благодарю за ответ))