地址标记,SpringMVC转发与调用相关知识存档
1.mytest_mavenprj1中,index的
<a href="login/login.html">点击登录</a>
与 <a href="/login/login.html">点击登录</a>
区别明显,后者访问时丢失项目名称目录
摘抄:[路径与servlet参数传递]
"/"表示的也是绝对路径.但是这里的"/"表示的绝对路径是http://localhost:8080 不包括后面的工程名.
相对路径表示的是Parameter.jsp所在的目录下的ServletTest这个映射.其实就是web.xml里面配置的那个url-pattern
2. DispatcherServlet相关知识
2.1 DispatcherServlet测试1:@RequestMapping("/mytest"),@RequestMapping("/login")
ControllerClass添加@RequestMapping("/mytest") + 方法添加@RequestMapping("/login")之后
在mytest/index.jsp中调用action="login.do"
调用成功,console输出信息:
Matching patterns for request [/mytest/login.do] are [/mytest/login.*]
跳转信息(404)(在controller中return null的情况下):
message /mavenprj1/mytest/login.jsp
默认跳转地址为以上
地址栏显示信息(重要):
http://localhost:8080/mavenprj1/mytest/login.do
即只显示提交时传递的信息,返回的地址信息在地址栏中得到了隐藏
2.2 DispatcherServlet测试2:controller参数(String username, String password, HttpServletRequest request)
ControllerClass的方法添加return username;
在mytest/index.jsp中调用action="login.do"
调用成功,response返回信息:message /mavenprj1/AA/asfdasdf.jsp
默认跳转地址为return信息+jsp
说明:其中添加".jsp"是在spring-mvc.xml中的设置
<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/AA/" p:suffix=".jsp" />
2.3 DispatcherServlet测试1补充:
ControllerClass添加@RequestMapping("/mytest") + 方法添加@RequestMapping("/login")之后
在mytest文件夹下新建jsp页面,测试转发同样达到效果。
结论:@RequestMapping("/mytest")表示此路径(包)下的action请求都经过此ControllerClass处理;
3.关于ModelAndView
3.1测试mav.setViewName("listjob2") 并且return mav
结论,测试效果为返回的页面地址信息有效;