It appeared that this helper doesn't work correctly for page inheritance. The base page has <!DOCTYPE html> but the child page has just "<wicket:extend> ... </wicket:extend>". See org.apache.wicket.markup.WicketNamespaceTest.XXtestDoctype_InheritedPage().
On Wed, Dec 8, 2010 at 5:53 PM, Martin Grigorov <[email protected]>wrote: > Correction, my bad. > > The Form's getMarkup() returns just : > <form wicket:id="form"> > <input wicket:id="number" type="number" min="3.0" max="10.0" > onchange="console.log(this.value)"/><br/> > <input type="submit" value="Submit"/> > </form> > > so there is no doctype. > > On Wed, Dec 8, 2010 at 5:48 PM, Martin Grigorov <[email protected]>wrote: > >> The NPE happens with #getAssociatedMarkup() and at this point the >> MarkupContainer is a Form >> Replacing it with #getMarkup() returned the page's markup, i.e. all html, >> and its markupstream had 'null' doctype. >> >> I'll investigate further but you can also take a look at the application. >> It is in wicketstuff's SVN repo (link below). >> >> >> On Wed, Dec 8, 2010 at 5:41 PM, Juergen Donnerstag < >> [email protected]> wrote: >> >>> Interesting. I thought I had a testcase with exactly that DOCTYPE. In >>> any case it returns the DOCTYPE of the page only, irrespective of >>> Panel or Border etc. >>> getMarkup() returning null means no markup found which would explain >>> the NPE as well. You are sure about your source code and markup? >>> >>> Juergen >>> >>> >>> On Wed, Dec 8, 2010 at 5:27 PM, Martin Grigorov >>> <[email protected]> wrote: >>> > Hi Juergen, >>> > >>> > I just tried to use MarkupUtil.isMarkupHtml5Compliant() for the new >>> HTML5 >>> > input types and it failed with: >>> > >>> > Caused by: java.lang.NullPointerException >>> > at >>> org.apache.wicket.markup.html.MarkupUtil$1.component(MarkupUtil.java:56) >>> > at >>> org.apache.wicket.markup.html.MarkupUtil$1.component(MarkupUtil.java:1) >>> > at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:142) >>> > at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:118) >>> > at >>> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:919) >>> > at >>> > >>> org.apache.wicket.markup.html.MarkupUtil.isMarkupHtml5Compliant(MarkupUtil.java:52) >>> > at >>> > >>> org.wicketstuff.html5.markup.html.form.NumberField.onInitialize(NumberField.java:38) >>> > at org.apache.wicket.Component.fireInitialize(Component.java:989) >>> > at >>> org.apache.wicket.MarkupContainer.initialize(MarkupContainer.java:992) >>> > at >>> > >>> org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:972) >>> > at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:162) >>> > at >>> > >>> org.wicketstuff.html5.markup.html.form.NumberFieldDemo.<init>(NumberFieldDemo.java:19) >>> > >>> > >>> > So I changed MarkupUtil line 56: >>> > MarkupResourceStream rs = >>> > comp.getAssociatedMarkup().getMarkupResourceStream(); >>> > with >>> > MarkupResourceStream rs = comp.getMarkup().getMarkupResourceStream(); >>> > >>> > and now there is no NPE but it returns "null" for doctype. >>> > >>> > The page HTML looks like: >>> > >>> > http://pastie.org/1359239 >>> > >>> > The code is at >>> > >>> https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/trunk/wicketstuff-core/jdk-1.6-parent/wicket-html5-parent >>> > see NumberFieldDemo in examples and NumberField in impl project. >>> > >>> > martin-g >>> > >>> >> >> >
