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 を使用しています。