RequestParam的使用
- 用于请求参数名和方法参数名不一样时
1 | public ModelAndView doNayuki( String name, Integer age){} |
- required属性
1 | public ModelAndView doNayuki( String name, Integer age){} |
对象参数接收
- 创建Student类
1 | public class Student { |
- 修改接收方式
1 | public ModelAndView doNayuki(Student student){ |
返回值
ModelAndView
- 用于返回数据和视图,对视图执行forward
String
用于跳转页面
表示视图,可以用逻辑名称和完整视图路径
1
2
3public String doNayuki(){
return "result";
}若有@ResponseBody,则表示返回的是数据
void
- 处理ajax时,用void返回值
- 响应json格式
Object
用于返回数据
例如返回值为Student类
1
2
3
4
5
6
public Student doStudent(){
Student student = new Student();
student.setName("Nayuki");
return student;
}
静态资源问题
当接收的请求为/时,中央调度器无法处理静态资源的请求
1
<url-pattern>/</url-pattern>
当接收的请求为/时,替代了tomcat的defaultServlet
解决方法
在配置文件中使用mvc:default-servlet-handler
1
<mvc:default-servlet-handler/>
冲突问题:上面的代码和@RequestMapping有冲突,需要加入下面的代码
1
<mvc:annotation-driven/>
在配置文件中使用mvc:resources
1
<mvc:resources mapping="/images/**" location="/images/"/>
冲突问题:上面的代码和@RequestMapping有冲突,需要加入下面的代码
1
<mvc:annotation-driven/>
地址分类
绝对地址
相对地址
访问地址加”/“
服务器ip+协议号+访问地址
若使用相对地址来当请求的地址,则可使用下面的代码
1
<a href="${pageContext.request.contextPath}/user/Nayuki.do">发起Nayuki.do请求</a>
参考地址
访问地址不加”/“
当前页面地址+访问地址
解决当前页面地址混乱问题
使用base标签设定基地址,最终地址为基地址+访问地址
1
2
3<head>
<base href="http://localhost:8080/springmvc/"/>
</head>1
2
3
4
5
6<%
String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
%>
<head>
<base href="<%=basePath%>"/>
</head>