热门面试题与答案和在线测试
面向面试准备、在线测试、教程与实战练习的学习平台

通过聚焦学习路径、模拟测试和面试实战内容持续提升技能。

WithoutBook 将分主题面试题、在线练习测试、教程和对比指南整合到一个响应式学习空间中。

面试准备

模拟考试

设为首页

收藏此页面

订阅邮箱地址
首页 / 面试主题 / Apache Tapestry
WithoutBook LIVE 模拟面试 Apache Tapestry 相关面试主题: 39

面试题与答案

了解热门 Apache Tapestry 面试题与答案,帮助应届生和有经验的候选人为求职面试做好准备。

共 9 道题 面试题与答案

面试前建议观看的最佳 LIVE 模拟面试

了解热门 Apache Tapestry 面试题与答案,帮助应届生和有经验的候选人为求职面试做好准备。

面试题与答案

搜索问题以查看答案。

中级 / 1 到 5 年经验级别面试题与答案

问题 1

How do we write components in Apache Tapestry?

Retrieving bound properties: When writting a component, you often require various properties to be supplied by the component user. At some point during rendering, you will want to use the value of this property.
You can do this by accessing the Binding. Assume we have a component with one property called 'values'. Our component will use this list in its preRenderCommponent() method to setup some model, for use elsewhere.

.... if(getValues() == null) {
  IBinding binding = getBindings("values"); if(binding.getObject() == null) {
      throw new RequestCycleException("The value for 'values' cannot be null", this);
  } setValues((List)values.getObject());
}

The binding itself will ensure that the object value is the correct type (assuming of course, it's been setup right).
Performing Lazy Instantiation of state based upon component properties: In some cases, the output of a component may be based upon the state of some other property of the same component. For example, imagine a form where the user can choose the type of product to view. When they choose a product, the form makes a query to the database for products matching this type, and reshows the list on the same page. (the list would be included outside of the form element itself).
Lets assume that the page object exposes it's products via a getProductModel(), which is an instance of IPropertySelectionModel.
We will also assume that the remainder of the page has the other components necessary to render correct HTML, using the value supplied by the getProductModel() result.
Here, it is helpful to know when in the rendering process you can rely on the value of selectedProduct to be set correctly, so that you can instantiate a ProductModel based on the provided value, for use in the form rendering. The best place to setup state is in the preRenderComponent() method. This is called by Tapestry just before it renders any component, but AFTER it has set component properties. So, we might write:

protected void preRenderComponent() {
  String selected = getSelectedProduct();
  List products = getMatchingProducts(selectedProduct);
  productModel = new ProductModel(products);
  .. other initialization code ...
保存以便复习

保存以便复习

收藏此条目、标记为困难题,或将其加入复习集合。

打开我的学习资料库
这有帮助吗?
添加评论 查看评论

用户评价最有帮助的内容:

版权所有 © 2026,WithoutBook。