В моей форме JSP среда может распознавать существование контроллера (он предлагает автозаполнение его пути), но я не могу связаться с моим контроллером.
Это может быть из-за того, что конфигурации не установлены должным образом, но всерешения здесь настраиваются с использованием xml.
Это моя форма:
<h2>Register</h2>
<!-- Contact form -->
<form class="register-form" action="/user/registerUser" method="post">
<div class="form-group">
<input class="form-control" name="username" placeholder="Username">
</div>
<div class="form-group">
<input class="form-control" name="name" placeholder="Name">
</div>
<div class="form-group">
<input class="form-control" name="lastName" placeholder="Last name">
</div>
<div class="form-group">
<input class="form-control" name="email" placeholder="Email">
</div>
<div class="form-group">
<input class="form-control" name="phone" placeholder="Phone number">
</div>
<div class="form-group">
<input class="form-control" name="password" placeholder="Password" type="password">
</div>
<div class="form-group">
<input class="form-control" name="rePassword" placeholder="Re-password" type="password">
</div>
<input type="submit" value="Register" class="button-transparent submit-button">
</form>
контроллер:
package app.controller;
import app.model.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletRequest;
@Controller
@RequestMapping(value = "/user")
public class UserController {
@RequestMapping(value = "registerUser", method = RequestMethod.POST)
public User registerUser(Model m, HttpServletRequest request) {
System.out.println("HERE");
return null;
}
}
и мои классы конфигурации:
package app.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
protected Class<?>[] getRootConfigClasses() {
return new Class[0];
}
protected Class<?>[] getServletConfigClasses() {
return new Class[]{WebConfig.class};
}
protected String[] getServletMappings() {
String[] init = {"/"};
return init;
}
}
и
package app.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@EnableWebMvc
@ComponentScan("app")
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
, ошибка 404, поскольку он не может распознать контроллер.