问题源于 一点教程 Spring MVC快速入门(他用Eclipse, 我这里用IDEA)
当一个Project创建多个module,每个module的访问路径势必要加以区分,本文演示对于Web application(Servlet, web.xml, index.jsp)结构如何添加访问路径
简单说只有两步
1 index.jsp中, form action 添加相对访问路径, 如/模块名称
2 服务器Edit Configuration-Deployment-Application context中也设置 第1步中同样的相对访问路径
注意另外两个地方不需要改动:
1 web.xml中还是*.do 路径匹配和扩展名匹配无法同时设置
2 controller中不用在类上添加@RequestMapping(其路径作用是区分同一个module中不同的Controller类), 也不用在方法的@RequestMapping中添加相对路径(其路径是为了区分同一个Controller类中不同的方法)
示例
IDEA创建module, Project template 采用Web application(Servlet, web.xml, index.jsp)
以模块PackagingPoJoEncapsulation为例,模块结构如图所示:
第1步 index.jsp中, form action 添加/PackagingPoJoEncapsulation
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>包装Pojo类型参数封装</title>
</head>
<body>
<h2>包装Pojo类型参数封装</h2>
<%这里添加了相对路径%>
<form action="/PackagingPoJoEncapsulation/param.do" method="post">
用户名:<input type="text" name="username"><br>
年龄:<input type="text" name="age"><br>
省份:<input type="text" name="address.province"><br>
城市:<input type="text" name="address.city"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
第2步 服务器部署设置