Webx是淘宝开发的一套Web开发框架,Webx3是其第三个升级版本;采用Eclipse的开发环境,现在支持java开发;
采用turbine原型的MVC框架,扩展了Spring容器,利用Maven进行项目的构建管理,灵活的ibatis持久层支持,总的来说,还是一套很不错的Web框架。
Webx3遵循turbine风格,velocity的模板被分为layout/screen/control三部分,对于一个Webx的应用程序,其页面元素一般包括:欢迎页面(index screen),页面布局(layout),表单验证(form)及数据处理(Action);
与Struts2.0相比,WebX对request对象进行了改进和封装,叫rundata,Webx3则进一步进行了参数绑定,其对form表单数据的收集则与Struts2.0类似,利用java bean接收并封装好。
对spring标签的扩展也不错,但感觉标签太多,不是每个都能见名知义,而且相关文档正在书写和完善中,所以很期待。
Webx3的action与Struts2.0的action对比:
Webx3一个实现登陆校验的action
public class LoginAction{
public void doCheck(@FormGroup("login")) LoginObject param,Navigator nav,Context context){
String name = param.getName();
String passwd = param.gerPasswd();
if("mylogin".equals(name)&&"hello123".equals(passwd)){
nav.redirectTo("appLink").withTarget("hello").withParameter("name",name);
}else{
context.put("errorMsg","Name or Password is invalid!");
}
}
}
class LoginObject{
private String name;
private String passwd;
......
/*getter 和 setter方法*/
......
}
struts2.0的一个对页面端form表单数据处理的action
public class BookAction extends ActionSupport{
public static final String SEARCH = "search";
private BookService bookService;
private String name;
private String content;
private String isbn;
private String pbl_dt;
......
/*getter 和 setter方法*/
......
public String insert() throws Exception {
Book book = new Book();
book.setName(getName());
book.setContent(getContent());
book.setIsbn(getIsbn());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
book.setPbl_dt(format.parse(getPbl_dt()));
bookService.insertBook(book);
return SEARCH;
}
}
二者对页面端数据的收集是一样的。
有关webx框架学习的文档:http://webx.taobao.net/