【发布时间】:2011-07-18 13:45:48
【问题描述】:
我的 Java + Tapestry 5 应用程序中有一个页面,其中包含两个组件 - 一个表单和一个网格。表单域用于过滤网格中显示的结果。该表单只是一个文本字段,用于设置它所映射的对象 A 的值。网格是从对象 A 创建的。我需要将正确的实例从表单组件发送到网格组件。做这个的最好方式是什么?我可以通过在上部页面中设置对象来使用普通的老式 java 方式,但应该有一种更清洁的方式。我在想环境注解,不过是不是太重了?
public class I1 {
@Component
private WFRFormFilter wfrFormFilter;
@Component (parameters={ "wfrDataHolder=property:wfrFormFilter.wfrDataHolder" })
private WFRResultTable wfrResultTable;
}
public class WFRFormFilter {
@Inject
private WFRService wfrservice;
@Propperty
@Persist
private WFRDataHolder wfrDataHolder;
@PageAttached
void pageAttached() {
if (wfrDataHolder == null) {
wfrDataHolder = new WFRDataHolder();
}
}
@OnEvent(EventConstants.SUCCESS)
void processMyForm() { }
}
public class WFRResultTable {
@Parameter(defaultPrefix=BindingConstants.PROP)
@Property
private WFRDataHolder wfrDataHolder;
@Inject
private WFRService wfrservice;
public List<WFRDataHolder> getResultTableData() {
return wfrservice.getData(this.wfrDataHolder);
}
}
【问题讨论】: