近来对etmvc进行修改,增加了控制器方法参数绑定功能,遗憾的是,获取方法参数名称的方法还没一个令我满意的。
关于etmvc的详细资料,请访问www.etmvc.cn
先将就一下吧,来写个用户资料管理的小例子,首先建立数据模型:
@Table(name="users")
public class User extends ActiveRecordBase{
@Id private Integer id;
@Column private String name;
@Column private String addr;
@Column private String email;
@Column private String remark;
//get set...
}
接下来写个控制器类:
public class UserController extends ApplicationController{
/**
* 用户资料列表
*/
public void index() throws Exception{
List<User> users = User.findAll(User.class);
request.setAttribute("users", users);
}
/**
* 新建用户页面
*/
public void new_(){
request.setAttribute("user", new User());
}
/**
* 保存新建用户资料并重定向到列表页面
*/
public void create(User user) throws Exception{
user.save();
redirect("index");
}
/**
* 编辑页面
*/
public void edit(int id) throws Exception{
User user = User.find(User.class, id);
request.setAttribute("user", user);
}
/**
* 更新用户资料并重定向到列表页面
*/
public void update(int id) throws Exception{
User user = User.find(User.class, id);
user = User.updateModel(user, request.getParameterMap());
user.save();
redirect("index");
}
/**
* 删除用户资料
*/
public void destroy(int id) throws Exception{
User user = User.find(User.class, id);
user.destroy();
redirect("index");
}
}
代码就不用再多解释了,这样完成了基本的CRUD操作。
视图采用JSTL页面,参看附件例子就好了。
这里要说明的是,控制器方法的参数可以是任意的,框架会对其进行绑定,感觉代码比以前更简洁了。