您的位置:首页 > 编程语言 > Java开发

idea SpringMVC jsp跳转controller的链接会丢失项目名称的问题

2018-03-08 14:39 387 查看
使用SpringMVC 注解时,特别是使用两层注解后,在触发事件后,页面跳转后会丢失项目名
1.我的项目名为【Test】



2.项目的整体逻辑是 项目启动调用register方法(get类型)———>registerForm(.jsp)---->register方法(post类型)----->loginForm(.jsp)----->login方法(post类型)----->welcome(.jsp)
我的Controller类和所有配置均没错,在启动后,根据映射请求



controller 类



跳转之后,项目名【Test】不见了



这是怎么回事?
1.Jsp文件不全
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>这个语句是用来拼接当前网页的相对路径的。<base herf="...">从来表明当前页面的相对路径所使用的根路径,也就是项目名称比如,页面内部有一个连接,完整的路径应该是 http://localhost:8080/Test/user/user_info.jsp 其中http://server/是服务器的基本路径,Test是当前应用程序的名字,那么,我的根路径应该是那么http://localhost:80/Test/。 <base href="<%=basePath%>">用这个base,服务器就可以动态的将指定路径和页面的相对路径拼装起来,形成完整的路径。  1.request.getSchema();可以返回当前页面所使用的协议,就是"http"  2.request.getServerName();返回当前页面所在服务器的名字,就是上面例子中的"localhost"  3.request.getServerPort();返回当前页面所在服务器的端口号,就是上面例子中的"8080"  4.request.getContextPath();返回当前页面所在的应用的名字

补全这两个文件。2.问题出现在调用方法时映射路径写错了。



action这个加了“/ ” servlet 会根据这个,将user认为是项目名,去找user项目下的这个页面,当然无法跳转显示,只要去掉“/”,写成 action=“user/register”即可。
修改后,程序完美运行



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息