idea SpringMVC jsp跳转controller的链接会丢失项目名称的问题
2018-03-08 14:39
387 查看
使用SpringMVC 注解时,特别是使用两层注解后,在触发事件后,页面跳转后会丢失项目名
1.我的项目名为【Test】
![](https://img-blog.csdn.net/20180308140125430?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU0NzQ1MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
2.项目的整体逻辑是 项目启动调用register方法(get类型)———>registerForm(.jsp)---->register方法(post类型)----->loginForm(.jsp)----->login方法(post类型)----->welcome(.jsp)
我的Controller类和所有配置均没错,在启动后,根据映射请求
![](https://img-blog.csdn.net/20180308141210770?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU0NzQ1MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
controller 类
![](https://img-blog.csdn.net/20180308141259824?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU0NzQ1MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
跳转之后,项目名【Test】不见了
![](https://img-blog.csdn.net/20180308141554671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU0NzQ1MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
这是怎么回事?
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.问题出现在调用方法时映射路径写错了。
![](https://img-blog.csdn.net/20180308142330140?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU0NzQ1MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
action这个加了“/ ” servlet 会根据这个,将user认为是项目名,去找user项目下的这个页面,当然无法跳转显示,只要去掉“/”,写成 action=“user/register”即可。
修改后,程序完美运行
![](https://img-blog.csdn.net/20180308143800742?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU0NzQ1MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
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”即可。
修改后,程序完美运行
相关文章推荐
- 解决jsp跳转controller的链接会丢失项目名称的问题
- springmvc Controller跳转jsp页面打开页面内容源码问题
- 解决IDEA打开web项目时不能随时刷新HTML或者JSP页面问题
- springmvc一个跳转jsp页面被过滤器过滤好几次的问题
- springmvc项目jsp页面传递参数至controller中文乱码解决方案
- springmvc 配置默认路径 以及 Jsp include跳转controller 以及 url get访问中文乱码
- SpringMVC WEB项目 jsp引入的js,css文件找不到路径问题
- JSP中超链接跳转时的中文错误问题
- IDEA启用web项目不能即时刷新HTML或JSP页面问题
- 解决IDEA开发JavaWeb项目修改了HTML或Servlet/JSP后刷新浏览器无法及时显示修改后的页面的问题
- idea 修改jsp页面需要重新部署项目的额问题
- SpringMVC从Controller到Jsp传递List对象报错问题
- 【springmvc+mybatis项目实战】杰信商贸-5.生产厂家DAO+SERVICE+CONTROLLER+JSP+配置文件
- javaweb项目的jsp页面跳转问题
- jsp/servlet页面跳转丢失样式问题
- 解决SSH项目中Action跳转之后,页面样式、图片丢失的问题
- springmvc页面跳转时的路径问题需要使用/项目名/。。。。。。必须的
- springmvc的get请求跳转不到controller的问题
- springMVC controller多次转发jsp后,出现无法加载出页面问题
- [置顶] 关于Idea基于maven创建springMvc项目中配置文件自动扫描找不到base-package问题