Hyperlink 导叶和可重用链接
'我正在尝试创建一个可重用的链接类来扩展链接。我有一个包含7个菜单项的网页,我正在为我的应用程序使用继承。我想创建一个可重用的链接类来缩短代码的长度 到目前为止,当我在oninitialize()中添加(新链接…)作为匿名类时,该链接创建并运行良好 当我硬编码要转到的新页面实例,并将其分配给“页面”引用,然后将其传递到setResponsePage()时,自定义链接类(它是基本页面的内部类)工作正常 问题是,我正在尝试将对象一般地传递给构造函数。当我将它传递给构造函数并尝试进入新页面时,我得到一个会话已过期 我尝试过为类使用泛型,也尝试过将页面引用声明为参数值。我应该使用某种模型吗?或者有人能举例说明如何做到这一点吗?我想能够使用这个自定义链接类添加7个菜单项的新链接,每个菜单项都有自己的类 有效的代码:Hyperlink 导叶和可重用链接,hyperlink,wicket,Hyperlink,Wicket,'我正在尝试创建一个可重用的链接类来扩展链接。我有一个包含7个菜单项的网页,我正在为我的应用程序使用继承。我想创建一个可重用的链接类来缩短代码的长度 到目前为止,当我在oninitialize()中添加(新链接…)作为匿名类时,该链接创建并运行良好 当我硬编码要转到的新页面实例,并将其分配给“页面”引用,然后将其传递到setResponsePage()时,自定义链接类(它是基本页面的内部类)工作正常 问题是,我正在尝试将对象一般地传递给构造函数。当我将它传递给构造函数并尝试进入新页面时,我得到一
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);
}
}
这可能是因为在第一个版本中,当调用Link对象的onClick方法时,您将页面对象装箱,而在第二个版本中,页面对象是在页面构造时创建的(就在前面) 如果在实例上传递responsepage的Pageclass,则可能会得到结果 这些组件的组件特性设置器
public final <C extends IRequestablePage> void setResponsePage(java.lang.Class<C> cls, PageParameters parameters)
public final void setResponsePage(java.lang.Class cls,PageParameters)
或者没有参数
public final <C extends IRequestablePage> void setResponsePage(java.lang.Class<C> cls)
public final void setResponsePage(java.lang.Class cls)
有关更多信息,请参阅。我最终做了以下工作:
public class CustomLinkToNewPage<T extends SSAPage> extends Link
public类CustomLinkToNewPage扩展链接
SSAPage是我扩展网页的基本页。。。因此,传入此类构造函数的任何对象也必须扩展SSAPage
public CustomLinkToNewPage(String id, Class<T> name)
public CustomLinkToNewPage(字符串id、类名)
然后我将.class引用传递给该对象,并使用反射创建了该对象的新实例。。然后将该实例设置为Page,并在onClick中将其传递给setResponsePage。很好地工作了,因为我不知道怎么用Nicktar的方式。因此,这是一个替代方案,以防其他人遇到这个问题