SpringMVC中没有GET /的Map

mu0hgdu0  于 2022-11-21  发布在  Spring
关注(0)|答案(6)|浏览(139)

我正在尝试构建Spring MVC Web应用程序。问题出在我的欢迎页面(localhost:8080/)。在我的输出日志中,我看到:没有GET的Map/
我将欢迎页面设置为URL:"/spring-mvc-login”但每次我重新启动应用程序时,它都试图查找我的控制器中不提供的URL"/"。我希望将欢迎页面重定向到URL**"/spring-mvc-login”**,但它不起作用。
有趣的是,当我输入“localhost:8080/spring-mvc-login”时,它运行得很好。唯一的问题是将此URL重定向到welcome-page。

网络.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>

待办事项-小服务程序.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”而不是“/"。谢谢帮助。

vs3odd8k

vs3odd8k1#

确保在src/main/java中创建包和类,而不是在src/main/resources中创建包和类。如果maven没有创建src/main/java文件夹,只需创建该文件夹并将包文件夹/类移到那里。这样做可以为我解决无Map错误。
希望这些信息对某人有用。

8ehkhllq

8ehkhllq2#

不要忘记使用@RestController注解。如果要重定向用途:

@RequestMapping(value = "/", method = RequestMethod.GET)
public void redirect(HttpServletResponse httpResponse) throws Exception {

     httpResponse.sendRedirect("/spring-mvc-login");
}
w46czmvw

w46czmvw3#

尝试删除“/”
之前

<welcome-file>/spring-mvc-login</welcome-file>

之后

<welcome-file>spring-mvc-login</welcome-file>
yduiuuwa

yduiuuwa4#

尝试更改web.xml内容:

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

或者将控制器Map更改为:

@RequestMapping(value={"/", "/spring-mvc-login"})
7d7tgy0s

7d7tgy0s5#

将@Controller注解放在Controller类的顶部

g6baxovj

g6baxovj6#

只需在spring-servlet.xml文件中检查一次。

<context:component-scan base-package="com.----"></context:component-scan>

特别是基础包名称。

相关问题