我想从@WebServlet映射更改为SpringMVC映射。为了适应这些情况,我使用@WebServlet设置了一个简单的LoginApplication。
现在我想通过添加web.xml和dispatcher-servlet.xml来切换到springMVC
我已经在构建路径中添加了所有必要的依赖项,包括commons-logging,jstl,servlet-api,spring-aop,spring-beans,spring-context,spring-core,spring-expression,spring-web和spring。 -webmvc。我在控制器中添加了@Controller @RequestMapping(“ XXXXX”)批注,并在执行重定向和填充的方法中添加了@GetMapping。
我的web.xml的一部分:
<servlet>
<servlet-name>sobster</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/sobster-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>sobster</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我的sobster-servlet.xml的一部分:
<context:component-scan base-package="com.sobster" />
<mvc:annotation-driven />
com.sobster是我的包含控制器的软件包
控制器的一部分:
@RequestMapping("/")
@Controller
public class StartPageController extends HttpServlet {
private static final long serialVersionUID = 1L;
@GetMapping
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.sendRedirect("login.jsp");
}
}
我希望现在可以由web.xml处理任何请求,该请求将查找sobster-servlet.xml以获取控制器。 sobster-servlet.xml现在检查com.sobster中的控制器并执行相应的操作(例如,在收到来自“ /”的调用后重定向到login.jsp)。
但是我得到的只是HTTP状态404 –未找到
我感谢任何建议:-)
答案 0 :(得分:0)
starPageController类应类似于以下代码。方法login的响应将重定向到loginPage.jsp。完整的URL由InternalResourceViewResolver类决定,该类在下面配置
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping(value = "/login")
public class StartPageController {
@RequestMapping(method = RequestMethod.GET)
public String login(HttpServletRequest req, HttpServletResponse response,ModelMap model) throws Exception {
return "loginPage";
}
}
sobster-servlet.xml应该如下所示。 Bean类InternalResourceViewResolver用于重定向到前缀为/ pages的jsp页面,后缀.jsp现在将在war文件中具有指向“ /pages/loginPage.jsp”的重定向路径。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<context:component-scan
base-package="com.sobster" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/pages/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>