но создание кнопок, текстовых полей, размеры окна я делал в графическом окружении. Неужели в Java нужно все элементы прописывать вручную?
просто у меня сейчас страница авторизации выходит первой
@GetMapping("/")
public String homePage() {
return "redirect:/allStudents";
}
Plant plant = plantRepository.findById(id);
Optional<Plant>
@Order(1)
@Configuration
@EnableWebSecurity
@Component
antMatchers("/allStudents").hasRole("ADMIN");
Есть ли ресурсы, где можно найти примерный алгоритм прохождения по статьям и страницам?
do {} while () или while() {}
собираете информацию (ссылки) об имеющихся записях и добавляете в какой-нибудь List. Но мне надо, допустим ,поднимать данные с базы поддерживаемых растений (только имена допустим), после эти имена надо каким то образом передать на страницу в скролл бар, чтобы пользователь уже из них выбрал растение и при сабмите
model.addAttribute("plants", repo.getPlants())
) передать эту информацию..... как обработать выбранное значение в контроллере ...
"Deprecated Gradle features were used in thus build".
compile
на implementation
Использую эмуляторы Genymotion. С самого начала запускаю VirtualBox. Тогда запускаю эмулятор Android через него. Дальше запускаю Genymotion, и уже через него запускаю эмулятор : Google Nexus5 - 5.1.0 - API22 - 1080x1920.
@GetMapping("/boxes")
public String getBoxesList(
Model model
) {
model.addAttribute("boxes", boxService.getBoxesList());
return "/boxes-template";
}
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<!-- тут итерируем по списку -->
<div th:each="box : ${boxes}">
<span th:inline="text">[[${box.boxTitle}]]</span> <!-- или можно так -->
<span th:text="${box.boxTitle}">Название коробки</span>
<a th:href="'/boxes/edit/'+${box.boxId}">Изменить</a> <!--обратите внимание на эту ссылку -->
</div>
</body>
</html>
@GetMapping("/boxes/edit/{id}")
public String boxEditForm(
@Pathvariable("id") Long id,
Model model
) {
Box box = boxRepository.findById(id);
model.addAttribute("box", box);
return "box-edit-template";
}
List<GrowBox> findByUserId(Long userId);
List<GrowBox> findAllByUserUserId(Long userId)
если мне память не изменяет, то должно быть как-то такList<GrowBox> findAllByUser(User user);
No property userId found for type GrowBox!
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property userId found for type GrowBox!
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
<form th:action="@{/register}"
th:object="${personForm}" method="POST">
Login:
<input type="text" th:field="*{name}" />
<br/>
Email:
<input type="text" th:field="*{email}" />
<br/>
Password:
<input type="text" th:field="*{password}">
<br/>
Confirm password:
<input type="text" th:field="*{doublePassword}">
<input type="submit" value="Create" />
</form>
<form th:action="@{/register}"
th:object="${personForm}" method="POST">
Login:
<input type="text" th:field="*{name}" />
<br/>
Email:
<input type="email" th:field="*{email}" />
<br/>
Password:
<input type="password" th:field="*{password}">
<br/>
Confirm password:
<input type="password">
<input type="submit" value="Create" />
</form>
model.addAttribute()
и вывести в шаблоне@RequestMapping(value = {"/register"} , method = RequestMethod.POST)
public String savePerson(Model model, @ModelAttribute("personForm") UserForm personForm) {
if(!personForm.getPassword.equals(personForm.getPasswordConfirmation)) {
model.addAttribute("passwordIncorrect", "Вы ввели некорректный пароль");
return "register";
}
if(personForm.checkPassword() &&
userRepository.findByEmail(personForm.getEmail()) == null &&
userRepository.findByName(personForm.getName()) == null) {
AppUser user = new AppUser(personForm.getName(),
personForm.getEmail(),
personForm.getPassword());
user.setEnabled(true);
user.setRoles(Collections.singleton(Role.USER));
userRepository.save(user);
return "home";
}
return "register";
}
logging.level.org.springframework.security=DEBUG
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
logging.level.org.hibernate.type=TRACE
2019-05-25 20:20:12.446 DEBUG 21154 --- [nio-8080-exec-2] o.s.s.p.JdbcUserDetailsManager : Query returned no results for user ''
2019-05-25 20:20:12.450 DEBUG 21154 --- [nio-8080-exec-2] o.s.s.a.dao.DaoAuthenticationProvider : User '' not found
org.springframework.security.authentication.BadCredentialsException: Bad credentials
.formLogin()
.loginPage("/login")
.usernameParameter("name")
.passwordParameter("password")
<div sec:authorize="isAnonymous()">
<!-- login button here for non logged-in users -->
</div>
if(
SecurityContextHolder.getContext().getAuthentication() != null &&
SecurityContextHolder.getContext().getAuthentication().isAuthenticated() &&
!(SecurityContextHolder.getContext().getAuthentication() instanceof AnonymousAuthenticationToken)
) {
return "redirect:/home";
}
public interface UserRepo extends CrudRepository<ClientOrder, Integer> {
}
public class ClientOrder {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id", nullable = false)
private Long id;
public interface UserRepo extends CrudRepository<ClientOrder, Long>
ClientOrder() {}
public String savePerson(Model model,
@ModelAttribute("personForm") ClientOrder personForm) {
firstName != null && firstName.length() > 0
firstName != null && !firstName.isEmpty()
ApplicationContext представляет собой Spring IoC контейнер и необходим для инициализации, настройки и сборки бинов для построения приложения.