我正在尝试构建Spring MVC Web应用程序。 问题出在我的欢迎页面(localhost:8080 /)中。在输出日志中,我看到: 没有针对GET的映射/
我将欢迎页面设置为URL:“ / spring-mvc-login” ,但是每次我重新启动应用程序时,它都会尝试查找URL “ /” 无法在我的控制器中投放。我想将欢迎页面重定向到URL “ / spring-mvc-login” ,但这不起作用。
有趣的是,当我键入“ localhost:8080 / spring-mvc-login”时,它可以正常工作。唯一的问题是将该URL重定向到Welcome-page。
WEB.XML
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/todo-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/spring-mvc-login</welcome-file>
</welcome-file-list>
todo-servlet.xml
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
和控制器
public class LoginController {
@RequestMapping(value = "/spring-mvc-login", method= RequestMethod.GET)
public String sayHello(){
return "login";
}
@RequestMapping(value = "/spring-mvc-login", method = RequestMethod.POST)
public String handleLoginRequest(@RequestParam String name, @RequestParam String password,
ModelMap modelMap){
modelMap.put("name",name);
modelMap.put("password", password);
return "welcome";
}
}
在 Controller 中,当我将@RequestMapping从“ / spring-mvc-login”更改为“ /”时,它当然可以正常工作,但我想将我的欢迎页面重定向到“ / spring-mvc” -login”而不是“ /”。感谢您的帮助。
答案 0 :(得分:1)
不要忘记使用@RestController注释。 如果要重定向,请使用:
@RequestMapping(value = "/", method = RequestMethod.GET)
public void redirect(HttpServletResponse httpResponse) throws Exception {
httpResponse.sendRedirect("/spring-mvc-login");
}
答案 1 :(得分:0)
尝试删除“ /”
之前
<welcome-file>/spring-mvc-login</welcome-file>
之后
<welcome-file>spring-mvc-login</welcome-file>
答案 2 :(得分:0)
尝试更改web.xml内容:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
或将控制器映射更改为:
@RequestMapping(value={"/", "/spring-mvc-login"})
答案 3 :(得分:0)
确保不在 src / main / resources 中的 src / main / java 中创建包和类。 如果maven没有创建src / main / java文件夹,只需创建该文件夹并将包文件夹/类移动到那里。 这样做为我解决了no mapping错误。
希望此信息对某人有用。
答案 4 :(得分:0)
将@Controller注解放在Controller类之上