使用spring框架必须在使用时在各个页面加载对应的底层service,
tapestry+spring结合使用时,需要Engine类的支持:
先在MyEngine文件里添加如下方法:

protected void setupForRequest(RequestContext context) {
      super.setupForRequest(context);
      // insert ApplicationContext in global, if not there
      Map global = (Map) getGlobal();
      ApplicationContext ac = (ApplicationContext) global.get("appContext");
      if (ac == null) {
        ac = WebApplicationContextUtils.getWebApplicationContext(
        context.getServlet().getServletContext()
        );
        global.put("appContext", ac);
      }
 }

然后在page文件里面使用如下语句就可以了:

<property-specification name="list" type="DataList" >
     global.appContext.getBean("tableSource")
</property-specification>

此时名字为list,那么相对应得java文件的静态方法就必须是
public abstract TreeDao getList();