我一直认为 Taglib 不应该滥用用得少而精最好,大量的使用会带来维护和管理上的麻烦.
JATO 中的 taglib 用得非常精。
它用 Taglib 激发 ViewBean 的显示与视图事件。
举个例子
<jato:viewBean name="CustomerInfo">
<jato:text name="CustomerName"/>
</jato:viewBean>
这是在 JSP 中的 jato tag. 它是用来显示客户名称的一个 static text field.
当 JSP 解析到这个 tag 时,它会在 CustomerInfo ViewBean中触发一个
beginCustomerNameDisplay(Event e) 的事件.
于是,你可以在这个事件中先设置一下这个组件的属性,如给它附个值什么的.
另外再举一个例子。
<jato:viewBean name="CustomerInfoModify">
<jato:textField name="CustomerName"/>
<jato:button name="Submit"/>
</jato:viewBean>
当你点击 Submit 按钮时,在 CustomerInfoModifyViewBean 中会触发一个
handleSubmitRequest(Event e)的事件,于是,你就可以在那个方法中去实现
你的业务逻辑:
handleSubmitRequest(Event e){
String name = getDisplayFieldStringValue("CustomerName");
CustomerModel model = new CustomerModelImpl();
model.addUserWhereCondition(USER_NAME,name);
model.update();
// forward to this view and make it refresh
forward();
// Also you can redirect to other view by these code:
// ViewBean view = getViewBean(UpdateSuccessfulViewBean.class);
// view.forward(e.getRequestContext());
}