the setting/exception is to make sure that all markup files have proper encoding. Think about moving markup files from your local latop onto a production server. Who guarantees that in your markup are only ascii chars? Who guarantees the prod server has the same default encoding than your devs laptops (and your dev might be working somewhere on the globe). And though the response needs to be browser aware, because especially historically every browser version behaved different depending on the presence of the xml prolog in response, it doesn't (and shouldn't) matter for Wicket's markup. Use whatever web editor you want, with whatever encoding you want, just make sure the xml prolog is present.
Wicket always removes the xml prolog from the markup upon reading, only the encoding (of Pages) get remembered and used as default for configuring the Page response. It is Page.configureResponse which writes a new xml prolog to the response. You can omit that by simply setting getMarkupSettings().setStripXmlDeclarationFromOutput(false). No need for response filter or whatever. IMO every Wicket markup, especially of what we deliver, should have the xml prolog. -Juergen On Thu, Apr 21, 2011 at 9:04 PM, Martin Grigorov <[email protected]> wrote: > I don't know the history of this recommendation. The log message says > "The markup file does not have a XML declaration prolog: " + > markupResourceData.getResource() + ". It is more save to use it." > > I'm not sure how it is more safe this way (if we keep this message we > need to fix the typo at least :-) ) > I'd vote to remove this prolog all together. If the user app needs it > then it is quite easy to use IResponseFilter to add it for each and > every page. > > > On Thu, Apr 21, 2011 at 7:51 PM, Pedro Santos <[email protected]> wrote: >> >> He Petr, by add the prolog in the html files those pages are not correctly >> rendered in IE8, IMO opinion the best option we have now is to move the >> Apache header in those files to inside the html tag plus restore the prolog >> [1]. >> >> Devs, I don't know if we can freely move the Apache header to outside the >> top of our files. Also reading the header politic site [2], I don't get if >> we can simple remove it. Does the exception page fits the "without any >> degree of creativity" requirement since it has no programming code? It is >> just static markup... >> >> 1 - https://issues.apache.org/jira/browse/WICKET-3566 >> 2 - http://www.apache.org/legal/src-headers.html >> >> <https://issues.apache.org/jira/browse/WICKET-3566> >> On Thu, Apr 21, 2011 at 2:26 AM, Petr Gladkikh <[email protected]> wrote: >> >> > I am trying to upgrage from wicket 1.4.1 to 1.4.17 and have following >> > problem. >> > In our application we configure >> > getMarkupSettings().setThrowExceptionOnMissingXmlDeclaration(true); >> > >> > This prevents all Wicket's default pages from rendering since none of >> > them contain XML prolog anymore. E.g. none of HTML files in >> > >> > apache-wicket-1.4.17/src/wicket/src/main/java/org/apache/wicket/markup/html/pages >> > contain XML declaration prolog. When wicket tries to show error page >> > exception is thrown. Top of stack trace is: >> > at org.apache.wicket.markup.MarkupParser.parse(MarkupParser.java:280) >> > at >> > org.apache.wicket.markup.loader.SimpleMarkupLoader.loadMarkup(SimpleMarkupLoader.java:52) >> > at >> > org.apache.wicket.markup.loader.InheritedMarkupMarkupLoader.loadMarkup(InheritedMarkupMarkupLoader.java:62) >> > at >> > org.apache.wicket.markup.loader.DefaultMarkupLoader.loadMarkup(DefaultMarkupLoader.java:55) >> > at org.apache.wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:465) >> > at >> > org.apache.wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:561) >> > at org.apache.wicket.markup.MarkupCache.getMarkup(MarkupCache.java:325) >> > at >> > org.apache.wicket.markup.MarkupCache.getMarkupStream(MarkupCache.java:216) >> > at >> > org.apache.wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:351) >> > at org.apache.wicket.Page.onRender(Page.java:1587) >> > at org.apache.wicket.Component.render(Component.java:2521) >> > at org.apache.wicket.Page.renderPage(Page.java:932) >> > >> > I can work around by switching these exceptions off. But I think that >> > the problem should be fixed otherwise since even when these exceptions >> > are switched off following message is written to log: >> > log.debug("The markup file does not have a XML declaration prolog: " + >> > markupResourceData.getResource() + ". It is more save to use it. E.g. >> > <?xml version=\"1.0\" encoding=\"UTF-8\" ?>"); >> > >> > -- >> > Petr Gladkikh >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [email protected] >> > For additional commands, e-mail: [email protected] >> > >> > >> >> >> -- >> Pedro Henrique Oliveira dos Santos > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com >
