Link を拡張する再利用可能なリンク クラスを作成しようとしています。約 7 つのメニュー項目を含む Web ページがあり、アプリケーションに継承を使用しています。コードの長さを短くするために、再利用可能なリンク クラスを作成したいと考えています。
今のところ、oninitialize() 内の匿名クラスとして (new Link....) を追加すると、リンクが作成され、正常に実行されます。
カスタム リンク クラス (ベース ページの内部クラス) は、移動する新しいページのインスタンスをハード コードし、それを "Page" 参照に割り当ててから setResponsePage(); に渡すと正常に機能します。
問題は、一般的にコンストラクターを介してオブジェクトを渡すことができるようにしようとしているということです。コンストラクターに渡して新しいページに移動しようとすると、セッションが期限切れになります。
クラスのジェネリックを使用してみました。また、ページ参照をパラメーター値として宣言することも試みました。ある種のモデルを使用することになっていますか? または、誰かがこれを行う方法の例を提供できますか? このカスタム リンク クラスを使用して、それぞれ独自のクラスを持つ 7 つのメニュー項目に新しいリンクを追加できるようにしたいと考えています...
動作するコード:
add(new Link("userPageLink")
{
public void onClick()
{
pageTitle = "User";
Page next = new UserPage();
setResponsePage(next);
}
});
クリックするとページが期限切れになる変更されたコード:
public class CustomLinkToNewPage extends Link
{
private String title;
private Page next;
public CustomLinkToNewPage(String id, String title, Page newPage)
{
super(id);
next = newPage;
this.title = title;
}
@Override
public void onClick()
{
SSAPage.pageTitle = title;
setResponsePage(next);
}
}