Здравствуйте, в последних нескольких коммитаъ возникла странная ошибка, так и не получилоьс отследить откуда у нее корни растут, хотя до этого все работало прекрасно, вот пример кода:
@Controller
@RequestMapping("/auethentification")
public class AuethentificationController {
@Autowired
private Auethentification auethentification;
@Autowired
private Olympiad olympiad;
// ...
@RequestMapping(value = "/logIn", method = RequestMethod.POST, produces = "text/plain;charset=UTF-8")
public @ResponseBody String logIn(@RequestParam(value = "login_sign_in") String login,
@RequestParam(value = "pass_sign_in") String password) {
RoleUser roleUser = auethentification.authenticate(login, password);
switch (roleUser) {
case ADMIN:
return "admin_room";
case USER:
olympiad.startOlympiad(login, password);
return "tasks";
case UNKNOWN:
return "Не правильные данные";
}
return "Не правильные данные";
}
// ...
}
<form method="POST" action="<c:url value="/auethentification/logIn"/>" class="sign-in-htm">
<div class="group">
<label class="label">Логин</label>
<input name="login_sign_in" type="text" class="input">
</div>
<div class="group">
<label class="label">Пароль</label>
<input name="pass_sign_in" type="password" class="input" data-type="password">
</div>
<div class="group">
<button name="btn_sign_in" class="button btn">Войти</button>
</div>
<p class="log_in animated" data-effect="tada"></p>
</form><!-- end sign-in-html -->
formSignIn.submit(function(){
disableButton(btnSignIn);
var login = $("input[name='login_sign_in']");
var password = $("input[name='pass_sign_in']");
if(login.val() === ""){
loggerSignIn.html("Не введен логин.");
animate(loggerSignIn);
enableButton(btnSignIn);
return false;
}
if(password.val() === ""){
loggerSignIn.html("Не введен пароль.");
animate(loggerSignIn);
enableButton(btnSignIn);
return false;
}
authenticate(formSignIn, btnSignIn);
});
function authenticate(form, btn){
disableButton(btn);
$.post(form.attr("action"), form.serialize(), function(response){
switch (response){
case "tasks" :
$(location).attr("href", "/tasks/showPage");
break;
case "admin_room" :
$(location).attr("href", "/adminRoom/showPage");
break;
default :
// ...
}
});
event.preventDefault();
}
@EnableWebMvc
@Configuration
@ComponentScan("ru.testingsystem.controllers")
public class MVCConfig extends WebMvcConfigurerAdapter {
@Bean
public InternalResourceViewResolver setupViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/views/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
// ...
}
[http-nio-8080-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod - Failed to resolve argument 0 of type 'java.lang.String'
org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'login_sign_in' is not present
// ...
[http-nio-8080-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - Resolving exception from handler [public java.lang.String ru.testingsystem.controllers.AuethentificationController.logIn(java.lang.String,java.lang.String)]: org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'login_sign_in' is not present
[http-nio-8080-exec-4] DEBUG org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver - Resolving exception from handler [public java.lang.String ru.testingsystem.controllers.AuethentificationController.logIn(java.lang.String,java.lang.String)]: org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'login_sign_in' is not present
[http-nio-8080-exec-4] DEBUG org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolving exception from handler [public java.lang.String ru.testingsystem.controllers.AuethentificationController.logIn(java.lang.String,java.lang.String)]: org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'login_sign_in' is not present
И вот дело в том что на всех контроллерах такая ерунда, хотя просто на выдачу страницы все отлично работает, но как тольок окнтроллер принимает данные, то... Надеюсь что кто-нибудь подскажет в чем дело, то уже просто не знаю что делать.
Ваша проблема в аннотировании параметров аннотацией @RequestParam. Параметры, помеченные данные аннотацией будут искаться в параметрах запроса. Т.е. если запрос будет вида POST /auethentification/logIn?login_sign_in="login"&pass_sign_in="password", то у Вас скорее всего все сработает. В случае POST запроса данные формы будут в теле запроса, поэтому Вам можно объединить Ваши параметры в класс, например LoginForm и принимать в методе этот класс
@RequestMapping(value = "/logIn", method = RequestMethod.POST, produces = "text/plain;charset=UTF-8")
public @ResponseBody String logIn(@RequestBody LoginForm form) {
RoleUser roleUser = auethentification.authenticate(form.login, form.password);
switch (roleUser) {
case ADMIN:
return "admin_room";
case USER:
olympiad.startOlympiad(form.login, form.password);
return "tasks";
case UNKNOWN:
return "Не правильные данные";
}
return "Не правильные данные";
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо сделать так, чтобы File Chooser Dialog делал доступными для выбора не все файлы, а только те, которые имеют расширениеsvg Мой код:
Нужно написать реализацию функции void merge(ArrayList a, ArrayList b) { // тело функции }
Подскажите как правильно реализоватьЕсть Фрагмент ListView, который программно вызываю взависимости от клика
Нужно, чтобы по нажатию на кнопку открывалось меню выбора файла из внутренней памяти или флешкиКак это реализовать?