getModel 与 getBean 系列方法


   getModel 用来接收页面表单域传递过来的 model 对象,表单域名称以”modelName.attrName” 方式命名。除了 getModel 以外,还提供了一个 getBean 方法用于支持传统的 Java Bean。以下 是一个简单的示例:


// 定义Model,在此为Blog
public class Blog extends Model<Blog> {
	public static final Blog me = new Blog();
}
 
// 在页面表单中采用modelName.attrName形式为作为表单域的name<form action="/blog/save" method="post"><input name="blog.title" type="text"><input name="blog.content" type="text"><input value="提交" type="submit"></form>
 public class BlogController extends Controller {
	public void save() {
	// 页面的modelName正好是Blog类名的首字母小写
	Blog blog = getModel(Blog.class);
 
	// 如果表单域的名称为 "otherName.title"可加上一个参数来获取 blog = getModel(Blog.class, "otherName");
	}
}


上面代码中,表单域采用了”blog.title”、”blog.content”作为表单域的 name 属性,”blog”是类 文件名称”Blog”的首字母变小写,”title”是 blog 数据库表的 title 字段,如果希望表单域使用任 意的 modelName , 只 需 要 在 getModel 时 多 添 加 一 个 参 数 来 指 定 , 例 如 : getModel(Blog.class, ”otherName”)。


如果希望传参时避免使用 modelName  前缀,可以使用空串作为 modelName  来实现:

getModel(Blog.class, “”); 这对开发纯 API 项目非常有用。