gpt4 book ai didi

java - Spring MVC 多模块 jsp 和 Controller 未正确映射

转载 作者:行者123 更新时间:2023-12-01 19:02:21 25 4
gpt4 key购买 nike

这是一个简单的 Spring MVC 多模块项目,在这里我想通过操作“showlogin.do”从index.jsp发出请求,然后通过LoginController.java加载login.jsp。

我正在尝试构建 WAR 文件,然后想在 Tomcat 服务器上运行。在 tomcat 服务器中运行时,它显示 index.jsp,但是当我单击链接 (showlogin.do) 时,它会给出类似 HTTP Status 404 – Not Found 的错误。

网址 –

  1. 在 Tomcat 中运行 WAR - http://localhost:8080/Biotech-web-0.0.1-SNAPSHOT/

block 引用

  • 点击链接后,它会重定向到 - http://localhost:8080/Biotech-web-0.0.1-SNAPSHOT/showlogin.do
  • 文件夹结构-

    生物技术测试[家长]

    生物技术数据[存储库]

    Biotech-service [Service],pom.xml具有存储库的依赖

    Biotech-web,pom.xml具有服务依赖

    index.jsp [生物技术网站:src/main/webapp/index.jsp]

    <html>
    <body>
    <h3>WELCOME</h3>
    <a href="showlogin.do" target="_blank">Click here to login</a>
    </body>
    </html>

    web.xml [生物技术网络:src/main/webapp/WEB-INF/web.xml]

    <web-app>
    <display-name>Archetype Created Web Application</display-name>

    <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>

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

    </web-app>

    tiles.xml [Biotech-web:src/main/webapp/WEB-INF/tiles.xml]

    <tiles-definitions>
    <definition name="baseTemplate" id="baseTemplate" template="/WEB-INF/layout/baselayout.jsp">
    <put-attribute name="title" value="Biotech"/>
    <put-attribute name="header" value="/WEB-INF/layout/jsp/header.jsp"/>
    <put-attribute name="body" value="${body}"/>
    <put-attribute name="footer" value="/WEB-INF/layout/jsp/footer.jsp"/>
    </definition>
    <definition name="login" id="login" extends="baseTemplate">
    <put-attribute name="body" value="/WEB-INF/jsp/login.jsp" />
    <put-attribute name="title" type="string" value="Login Page" />
    </definition>
    </tiles-definitions>

    dispatcher-servlet.xml [Biotech-web:src/main/webapp/WEB-INF/dispatcher-servlet.xml]

    <context:component-scan base-package="com.pack.controller" />
    <context:component-scan base-package="com.pack.services" />
    <context:component-scan base-package="com.pack.repository" />

    <mvc:annotation-driven />
    <context:annotation-config />

    <bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="prefix" value="/jsp/" />
    <property name="suffix" value=".jsp" />
    <property name="viewClass">
    <value>
    org.springframework.web.servlet.view.tiles2.TilesView
    </value>
    </property>
    </bean>

    <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
    <list>
    <value>/WEB-INF/tiles.xml</value>
    </list>
    </property>
    </bean>

    LoginController.java [com.pack.controller]

    package com.pack.controller;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;

    @Controller
    public class LoginController {

    @RequestMapping("/showlogin")
    public String showlogin() {
    System.out.println("--------------login Controller----------");
    return "login";

    }
    }

    最佳答案

    您的请求映射只有 /showlogin,它应该是 /showlogin.do

    关于java - Spring MVC 多模块 jsp 和 Controller 未正确映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59616334/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com