У меня есть две разные формы в одном HTML.Один из них - Логин, и он работает, но другой - Регистрация, и когда я отправляю форму, он никогда не отправляется в почтовый контроллер для действия / регистрация.
LoginController.java
@Resource
UserFacade userFacade;
@GetMapping("/login")
public String signupForm(Model model) {
model.addAttribute("newuser", new User());
return "login";
}
@PostMapping("/register")
public User signupSubmit(@ModelAttribute("newuser") User user) {
userFacade.saveUser(user);
return user;
}
login.html , здесь вы можете увидеть обе формы, первая - это логин того, кто работает, а другая - форма регистрации.Когда я нажимаю кнопку «Отправить» во время отладки, она никогда не переходит в публичную функцию userupSubmit, которую я написал ранее.
<form id="login-form" th:action="@{/login}" method="post" style="display: block;">
<div class="form-group">
<input type="text" name="username" id="username" tabindex="1" class="form-control"
placeholder="Email" value="">
</div>
<div class="form-group">
<input type="password" name="password" id="password" tabindex="2" class="form-control"
placeholder="Contraseña">
</div>
<div class="form-group">
<input type="checkbox" tabindex="3" class="" name="remember-me" id="remember"> <label
for="remember"> Recuérdame</label>
<div align="center" th:if="${param.error}">
<p style="font-size: 15; color: #FF1C19;">Email o contraseña incorrectos</p>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-sm-6 col-sm-offset-3">
<input type="submit" name="login-submit" id="login-submit"
class="form-control btn btn-login" value="Iniciar sesión">
</div>
</div>
</div>
</form>
<!-- ======================= REGISTRO ============================ -->
<form id="register-form" th:action="@{/register}" th:object="${newuser}" method="post" role="form"
style="display: none;">
<div class="form-group">
<input type="text" th:field="*{email}" name="email" id="email" class="form-control"
placeholder="Email" tabindex="1">
</div>
<div class="form-group">
<input type="text" th:field="*{name}" name="name" id="name" class="form-control"
placeholder="Nombre" tabindex="2">
</div>
<div class="form-group">
<input type="text" th:field="*{lastName}" name="lastName" id="lastName" class="form-control"
placeholder="Apellido" tabindex="3">
</div>
<div class="form-group">
<input type="password" th:field="*{password}" name="password" id="password"
class="form-control" placeholder="Contraseña" tabindex="4">
</div>
<div class="form-group">
<div class="row">
<div class="col-sm-6 col-sm-offset-3">
<input type="submit" name="register-submit" id="register-submit"
class="form-control btn btn-register" value="Registrarse">
</div>
</div>
</div>
</form>
My Spring config config
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private BCryptPasswordEncoder bCryptPasswordEncoder;
@Autowired
private DataSource dataSource;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/css/**", "/js/**", "/images/**", "/vendor/**", "/fonts/**").permitAll()
.anyRequest().authenticated().and().formLogin().loginPage("/login").permitAll().and().logout()
.permitAll().and().rememberMe().key("uniqueAndSecret");
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().usersByUsernameQuery("select email, password, active from user where email=?")
.authoritiesByUsernameQuery(
"select u.email, r.role from user u inner join user_role ur on(u.user_id=ur.user_id) inner join role r on(ur.role_id=r.role_id) where u.email=?")
.dataSource(dataSource).passwordEncoder(bCryptPasswordEncoder);
}
}
@Configuration
public class MvcConfig implements WebMvcConfigurer {
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("login");
}
@Bean
public BCryptPasswordEncoder passwordEncoder() {
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
return bCryptPasswordEncoder;
}
}