假设我有一个Grid
带有一些链接来编辑一个Entity
. 这是我的.tml
文件
<table t:id="personGrid">
<!-- ... -->
<p:editCell>
<p t:id="edit">${person.lastName}</p>
</p:editCell>
<!-- ... -->
</table>
在我的.java
文件中,我有这个:
@Component(parameters = {"context=person.employeeNumber", "page=person/PersonPage"})
private PageLink edit;
这很简洁,我不必编写很多样板代码。这里的陷阱是如果我重构或者employeeNumber
重构PersonPage
. 它不再起作用,最糟糕的是我不会收到错误消息。
我发现我可以PageRenderLinkSource
像这样使用:
@Inject
private PageRenderLinkSource editPersonLink;
// ...
Object onActionFromEdit(String employeeNumber)
{
return editPersonLink.createPageRenderLinkWithContext(PersonPage.class, employeeNumber);
}
这是相当不错的。它没有更多的样板,但它是可重构的。
我的问题是我仍然必须保持
@Component(parameters = {"context=person.employeeNumber", "page=PersonPage"})
private PageLink edit;
在我的.java
文件中,否则 Tapestry 会抱怨缺少@Component
.
所以我的问题是,如何在没有样板的情况下实现一些防重构的参数化页面链接?
我正在使用 Tapestry 5.3.6。