一 控制器
package org.fkit.controller;
import org.fkit.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
// Controller注解用于指示该类是一个控制器,可以同时处理多个请求动作
@Controller
public class ModelAndViewController{
@RequestMapping(value="/ModelAndViewTest")
public ModelAndView ModelAndViewTest(ModelAndView mv){
System.out.println("ModelAndViewTest");
User user = new User();
// 设置user对象的username属性
user.setUsername("疯狂软件");
// 将User对象添加到ModelAndView当中
mv.addObject("user", user);
// 设置要转发的页面
mv.setViewName("result");
return mv;
}
}
二 领域模型
package org.fkit.domain;
import java.io.Serializable;
/**
* @Description:
*
网站:<a href="http://www.fkit.org">疯狂Java</a>
* @author 肖文吉 36750064@qq.com
* @version V1.0
*/
// 域对象,实现序列化接口
public class User implements Serializable{
private static final long serialVersionUID = 1L;
// 私有字段
private String loginname;
private String password;
private String username;
// 公共构造器
public User() {
super();
}
public User(String loginname, String password, String username) {
super();
this.loginname = loginname;
this.password = password;
this.username = username;
}
// set/get方法
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return "User [loginname=" + loginname + ", password=" + password
+ ", username=" + username + "]";
}
}
三 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- spring可以自动去扫描base-pack下面的包或者子包下面的java文件,
如果扫描到有Spring的相关注解的类,则把这些类注册为Spring的bean -->
<context:component-scan base-package="org.fkit.controller"/>
<!-- 默认装配方案 -->
<mvc:annotation-driven/>
<!-- 静态资源处理 -->
<mvc:default-servlet-handler/>
<!-- 视图解析器 p:prefix属性表示前缀 p:suffix 表示后缀 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/content/" p:suffix=".jsp"/>
</beans>
四 视图
1 index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试@ModelAndView</title>
</head>
<body>
<h3>测试@ModelAndView的不同用法</h3>
<a href="ModelAndViewTest">测试ModelAndView</a>
</body>
</html>
2 result.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试Model</title>
</head>
<body>
访问request作用范围域中的model对象:${requestScope.user.username }
</body>
</html>
五 测试