Hi,

i would like to decouple the page dependencies. My page flow is implemented by using bookmarkable page links.
As we all know they take a page class as parameter. This couples both pages.

So i thought it's a good idea to give the page class a name in my Spring application context and reference it in
the caller page.

public StartPage extends WebPage {

  @SpringBean(name="nextPageClass")
  private Class<? extends Page> _nextPageClass;

  public StartPage() {
    add(new BookmarkablePageLink("toNextPage", _nextPageClass);
  }
}

My application context defines:

<bean id="nextPageClass" class="java.lang.Class" factory-method="forName">
<constructor-arg value="my.NextPage"/>
</bean>

But it's not working while java.lang.Class is final. I get

Caused by: java.lang.IllegalArgumentException: Cannot subclass final class class java.lang.Class
    at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:446)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
    at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
    at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
at org.apache.wicket.proxy.LazyInitProxyFactory.createProxy(LazyInitProxyFactory.java:174) at org.apache.wicket.spring.injection.annot.AnnotProxyFieldValueFactory.getFieldValue(AnnotProxyFieldValueFactory.java:130)
    at org.apache.wicket.injection.Injector.inject(Injector.java:103)
    ... 47 more

Can i do this in another way?

Thanks
Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to