NetBeans 6 delivers great updates to the Matisse GUI builder. Spend a few minutes with Roman Strobl and get an expert briefing on what's new and what has changed. (sponsored)
In this, the third and final installation of Andres' Introduction to Groovy series, you learn about how Groovy handles variable numbers of arguments, named parameters, currying, and more about Groovy operators. Including, some new operators.
Swing Fuse (actually just Fuse), is a framework designed to make it easier to create your own custom desktop components. In this article, Daniel Spiewak shows you how to get started and provides sample source code you can download.
Willam Louth shows how he uses JXInsight Probes to investigate probable performance issues with code bases that he is not familiar with. He also highlights possible pitfalls in creating a benchmark, as well as in the analysis of results.
Replies:
20 -
Pages:
2
[
12
| Next
]
Threads:
[
Previous
|
Next
]
(
Disclaimer:
This article is one of many in a series devoted to the Java web-application framework, Wicket. If you haven't yet, please see
the first article - 'A Little Bit About Wicket'
for a comprehensive list of all available articles).
The intention behind controlling the URL could be multiple things. First, being able to adapt URLs is the only way to fit into the expected URLs of a legacy system. Second, the URLs from Wicket are verbose enough that it makes it easier for someone with enough malice to attempt to manipulate the URL to produce unexpected results (although due to Wicket's server state, that is surprisingly difficult). Don't get me wrong, I'm not saying that changing the URL necessarily fills a serious security hole, but it is an extra level of indirection to help mask internal details. Finally, many systems (such as search engines) can be drastically impacted by the shape, length, and stability of URLs - after all, it's no good if changing the internal details (such as a package name for a particular Page class) causes a page of your website to completely lose rank and fall off of search engines (where previously it may have been #1!).
What's Missing in Wicket 1.1
Wicket 1.1 already has support for this type of feature in a limited capacity in the form of page aliases. Page aliases are a handy feature, but they only get you so far; so many of the details of Wicket's URLs are still off limits in Wicket 1.1. At this point (given the imminent release of Wicket 1.2) I don't think it's worth going into too much detail on page aliases.
Some Technical Jargon
Wicket 1.2 has an entire API (
IRequestCodingStrategy
) that is devoted to this new process. These strategies at a high-level basically know two things:
How to 'decode' a request URL into something that Wicket understands
How to 'encode' a request target (such as a page) into a request URL
As you can imagine, this interface is used to translate requests from the client into page calls, as well as for converting components (such as
PageLinks
) into anchor URLs to be sent back to the client.
Now, if you wanted to, you could replace the
IRequestCodingStrategy
directly; however in most cases you probably don't need to (and probably wouldn't want to, anyway). If you look a bit more carefully, you'll see that the
IRequestCodingStrategy
extends the interface
IRequestTargetMounter
. This API is designed to allow you to plug in individual strategies for unique URL paths. Among other things, this interface has a
mount
and
unmount
method that take a path and, in the case of the
mount
method, also takes yet-another-strategy (the
IRequestTargetURLCodingStrategy
) for handling requests towards this particular path.
Using This Stuff
Now that we've gone through the 'nickel' tour of the API, let's discuss practical usage a bit. The first, most straightforward activity we can try is to map a bookmarkable page to something simpler. Previously I discussed that when Wicket generated links to other pages, it did so by adding a request parameter it would use to find that page. I showed that it would produce a URL that looks something like this:
Note that this is actually just a little different than the URL in my older article; this is filled with Wicket-specific identifiers and markup that was added intentionally in Wicket 1.2 as part of an effort to completely isolate the Wicket parameters from the user parameters. Either way, it's fairly clear that Wicket is trying to link to the page 'AlohaPage' - and it's also fairly clear that we're using Wicket.
Mounting this page to a particular URL couldn't be much simpler. The request coding strategy methods have been propogated to the application class, so you don't have to do any complex lookups to get to request coding APIs. In fact, you don't even have to work with the target URL coding strategies in the simplest case. Let's say we wanted to map all calls to
AlohaPage
to "/home" - in our application 'init' method we can now add this line:
Much prettier. Now, you may recall that our running 'aloha' example also had a second page that took a URL request parameter. When it is unmapped and we click the link to this page, we're taken to a URL that looks something like this:
Wow. You'll notice that not only did Wicket use our /2 mapping, but when it came time to apply the request parameter, it implemented a tiered folder structure rather than query parameters. This type of URL has become quite popular in the web world thanks to applications such as radio userland. Amazingly, we somehow managed to do this all with one line.
In reality, this
mountBookmarkablePage(...)
method is just a convenience method that utilizes a built-in variety of the
IRequestTargetURLCodingStrategy
that translates URLs into this folder format. This built-in strategy is the
BookmarkablePageRequestTargetUrlCodingStrategy
, and actually inherits all of the 'forward-slash parameter pathing' from the
AbstractRequestTargetUrlCodingStrategy
.
If your pages are organized in packages in a way that closely resembles the way you want the URLs to be mapped, and you are happy with the default class name being the leaf of the folder path (e.g. 'Page2' as opposed to '2', and 'AlohaPage' as opposed to 'home') you can use a special form of target URL strategy that works on a per-package basis, rather than a per-class basis. So, let's map the entire page package in our current example:
What we're doing here is passing a base path and a package so that Wicket knows that all pages in that package should be rooted at that path. Now our urls are now:
Of course, if these URL patterns aren't what you are interested in, or you need to meet some legacy API criteria, you can always implement custom coding strategies by creating your own
IRequestTargetURLCodingStrategy
. In the event you want to implement your own URL coding strategy, you just need to use the mount method that takes an implementation of the
IRequestTargetURLCodingStrategy
class. The implementation may drastically vary by what you want to achieve, of course, and can work with any number of request targets.
URL mounting is extensively used by the Wicket request system, and goes far beyond just bookmarkable pages. The extensive details go beyond what's really in scope for this tip; but all sorts of things can be managed through this API.
In 1.2 we have introduced a UrlCompressor class that can be used to shift some of this information from the URL into the Session and make urls much shorter. So if you dont mind a little extra session baggage do this in your application subclass:
/**
* Special overwrite to have url compressing
* @see UrlCompressor
* @see wicket.protocol.http.WebApplication#newRequestCycleProcessor()
*/
@Override
protected IRequestCycleProcessor newRequestCycleProcessor()
{
return new CompoundRequestCycleProcessor(new WebURLCompressingCodingStrategy(),
new WebURLCompressingTargetResolverStrategy(),
null,null,null);
}
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
I looked at the links that were posted in a reply to the announcement and saw that some of these new links also provided a way of setting variables like:
site.com/var1/value-of-var1/var2/value-of-var2/
Would it also be possible to do this with no name? Like if we have a site called communitysite.com and want to look up a profile with profile id 421, could this then be done with this url:
communitysite.com/profile/421/ ?
Or even possibly multiple values like communitysite.com/profile/421/413/
and then the order dertermines what they are the values of.
Normally I would just do a communitysite.com/profile.php?profileid=421
but theres just something about those short urls
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
Hi R.J.,
Could you please show (e.g. in a separate Tips & Trcks thread) how to convert a simple html-only website into a basic Wicket-application using page templates containing graphics, stylesheets and navigation (the link to the current page should not be rendered as a link), that can be edited in any WYSIWYG-html-editor? Thanks in advance.
I'm sure, there are still a larger number of plain-html-websites which can be converted easily to a page-template-based Wicket-project that reduces the maintainance cost significantly and makes it simple to add new pages without the need to add navigation links to dozen of pages.
Both your statement here and your blog items give me the idea that you haven't looked outside how MVC is usually proposed with Java web frameworks.
First of all, I couldn't care less whether we are a 'pure' MVC framework or not. It's just a pattern, and one that has gotten a very ambigous form for people anyway. Even Swing for instance doesn't apply MCV in it's original proposed form.
Now say, we use the shallow definition of MVC; seperation of model/view/controller. Why wouldn't Wicket fit in? The view and controller parts are handled by components - like Swing - and Wicket has the concept of models per component. The fact that components use templates for rendering has nothing to do with being an MVC framework or not; reasoning from the pattern you can regard that as an implementation detail of the view.
So, Wicket has the model/ view/ controller encapsulated on a component level. It doesn't get much more MVC than that - unless you look at the orginal discussion where you can see that probably none of the current Java frameworks, be it for the web or for the desktop, follow that pattern exactly.
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
> Hi R.J.,
>
> Could you please show (e.g. in a separate Tips &
> Trcks thread) how to convert a simple html-only
> website into a basic Wicket-application using page
> templates containing graphics, stylesheets and
> navigation (the link to the current page should not
> be rendered as a link), that can be edited in any
> WYSIWYG-html-editor? Thanks in advance.
>
> I'm sure, there are still a larger number of
> plain-html-websites which can be converted easily to
> a page-template-based Wicket-project that reduces the
> maintainance cost significantly and makes it simple
> to add new pages without the need to add navigation
> links to dozen of pages.
>
> Mike
The real advantage of Wicket lies elsewhere. If you talk about plain-html-websites, that sounds like document oriented sites. There are a number of frameworks that'll probably be a better choice - if you need a framework at all for that - like for instance Cocoon.
Wicket is a very good choice when you have to create dynamic, relatively complex web applications.
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
No problem. It's just to remark how ambiguous this concept became during these years. In fact, most frameworks now simply claim to be "web frameworks" rather than "MVC frameworks", which is very more reasonable.
My only "complaint" is about the "inversion of control" we often see in these frameworks. I mean giving the flow control to a hidden component (Action, Controller, or whatever) that in turn forwards to the JSP, instead of letting the JSP itself orchestrate the response. The final result is a Template View Pattern, that is useful sometimes, but is unneccessary for most applications. JSPs are the great hit of J2EE, and going back to servlets disguised of Actions or whatever is a step backwards.
Excuse me whether I misunderstood your webframework in this point.
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
> No problem. It's just to remark how ambiguous this
> concept became during these years. In fact, most
> frameworks now simply claim to be "web frameworks"
> rather than "MVC frameworks", which is very more
> reasonable.
>
> My only "complaint" is about the "inversion of
> control" we often see in these frameworks. I mean
> giving the flow control to a hidden component
> (Action, Controller, or whatever) that in turn
> forwards to the JSP, instead of letting the JSP
> itself orchestrate the response. The final result is
> a Template View Pattern, that is useful sometimes,
> but is unneccessary for most applications. JSPs are
> the great hit of J2EE, and going back to servlets
> disguised of Actions or whatever is a step
> backwards.
> Excuse me whether I misunderstood your webframework
> in this point.
What Wicket tries to do is to give you the same level of abstraction as you would have with e.g. Swing (components). But instead of implementing layout management, we reuse HTML/ CSS, which is great for that purpose.
Wicket does not use actions in any sense. Components can recieve their own events, like:
Link myLink = new Link("someId", someModel) {
onClick() {
MyObject o = (MyObject)getModelObject();
// etc...
}
}
I think component level control is the way UI development should be done best. The oppostite is document oriented, like using JSP directly, and that works for sites that are mostly read-only and do not have to do a lot of state keeping (like you would need when implementing for instance wizards).
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
> The real advantage of Wicket lies elsewhere. If you
> talk about plain-html-websites, that sounds like
> document oriented sites. There are a number of
> frameworks that'll probably be a better choice - if
> you need a framework at all for that - like for
> instance Cocoon.
Well, I've read about the previewability of Wicket markup on its website and this is a very important point for us. Unfortunately, there are not much frameworks which support that. Are you sure, Apache Cocoon can do that? I skimmed their website and it appears to render XML files using stylesheets. That's not what we want. We want to edit plain-HTML page-templates.
> Wicket is a very good choice when you have to create
> dynamic, relatively complex web applications.
Don't know yet how complex our website will become.
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
There have been a couple of questions like this on our user list. I believe what people eneded up doing was creating a wicket page that streamed the static html files into its body. That way you can access any static template by providing its name as a query parameter and at the same time create real wicket pages alongside.
Wicket 1.2: Control Wicket URLs with URL Mounting
At 10:28 PM on Apr 3, 2006, R.J. Lorimer wrote:
Fresh Jobs for Developers Post a job opportunity
( Disclaimer: This article is one of many in a series devoted to the Java web-application framework, Wicket. If you haven't yet, please see the first article - 'A Little Bit About Wicket' for a comprehensive list of all available articles).
Overview
It seems that the concept of completely controlling the URLs that are generated and consumed by Wicket is a hot topic. I talked about it briefly in this tip (Server-Side State Revisited; Bookmarkable Links) , and that sparked a conversation in the comments about the upcoming feature in Wicket 1.2 . The topic came up again today with the announcement of the release of Wicket 1.2 Beta 3 .
The intention behind controlling the URL could be multiple things. First, being able to adapt URLs is the only way to fit into the expected URLs of a legacy system. Second, the URLs from Wicket are verbose enough that it makes it easier for someone with enough malice to attempt to manipulate the URL to produce unexpected results (although due to Wicket's server state, that is surprisingly difficult). Don't get me wrong, I'm not saying that changing the URL necessarily fills a serious security hole, but it is an extra level of indirection to help mask internal details. Finally, many systems (such as search engines) can be drastically impacted by the shape, length, and stability of URLs - after all, it's no good if changing the internal details (such as a package name for a particular Page class) causes a page of your website to completely lose rank and fall off of search engines (where previously it may have been #1!).
What's Missing in Wicket 1.1
Wicket 1.1 already has support for this type of feature in a limited capacity in the form of page aliases. Page aliases are a handy feature, but they only get you so far; so many of the details of Wicket's URLs are still off limits in Wicket 1.1. At this point (given the imminent release of Wicket 1.2) I don't think it's worth going into too much detail on page aliases.
Some Technical Jargon
Wicket 1.2 has an entire API (
IRequestCodingStrategy) that is devoted to this new process. These strategies at a high-level basically know two things:As you can imagine, this interface is used to translate requests from the client into page calls, as well as for converting components (such as
PageLinks) into anchor URLs to be sent back to the client.Now, if you wanted to, you could replace the
IRequestCodingStrategydirectly; however in most cases you probably don't need to (and probably wouldn't want to, anyway). If you look a bit more carefully, you'll see that theIRequestCodingStrategyextends the interfaceIRequestTargetMounter. This API is designed to allow you to plug in individual strategies for unique URL paths. Among other things, this interface has amountandunmountmethod that take a path and, in the case of themountmethod, also takes yet-another-strategy (theIRequestTargetURLCodingStrategy) for handling requests towards this particular path.Using This Stuff
Now that we've gone through the 'nickel' tour of the API, let's discuss practical usage a bit. The first, most straightforward activity we can try is to map a bookmarkable page to something simpler. Previously I discussed that when Wicket generated links to other pages, it did so by adding a request parameter it would use to find that page. I showed that it would produce a URL that looks something like this:
Note that this is actually just a little different than the URL in my older article; this is filled with Wicket-specific identifiers and markup that was added intentionally in Wicket 1.2 as part of an effort to completely isolate the Wicket parameters from the user parameters. Either way, it's fairly clear that Wicket is trying to link to the page 'AlohaPage' - and it's also fairly clear that we're using Wicket.
Mounting this page to a particular URL couldn't be much simpler. The request coding strategy methods have been propogated to the application class, so you don't have to do any complex lookups to get to request coding APIs. In fact, you don't even have to work with the target URL coding strategies in the simplest case. Let's say we wanted to map all calls to
AlohaPageto "/home" - in our application 'init' method we can now add this line:// [in AlohaApplication.init()] mountBookmarkablePage("/home", AlohaPage.class);The net result is that navigating to this page presents this URL:
Much prettier. Now, you may recall that our running 'aloha' example also had a second page that took a URL request parameter. When it is unmapped and we click the link to this page, we're taken to a URL that looks something like this:
Let's try mapping this page as well, and then just see what we get:
// [in AlohaApplication.init()] mountBookmarkablePage("/2", Page2.class);Here's the net result:
Wow. You'll notice that not only did Wicket use our /2 mapping, but when it came time to apply the request parameter, it implemented a tiered folder structure rather than query parameters. This type of URL has become quite popular in the web world thanks to applications such as radio userland. Amazingly, we somehow managed to do this all with one line.
In reality, this
mountBookmarkablePage(...)method is just a convenience method that utilizes a built-in variety of theIRequestTargetURLCodingStrategythat translates URLs into this folder format. This built-in strategy is theBookmarkablePageRequestTargetUrlCodingStrategy, and actually inherits all of the 'forward-slash parameter pathing' from theAbstractRequestTargetUrlCodingStrategy.If your pages are organized in packages in a way that closely resembles the way you want the URLs to be mapped, and you are happy with the default class name being the leaf of the folder path (e.g. 'Page2' as opposed to '2', and 'AlohaPage' as opposed to 'home') you can use a special form of target URL strategy that works on a per-package basis, rather than a per-class basis. So, let's map the entire page package in our current example:
// [in AlohaApplication.init()] mount("/main", PackageName.forClass(AlohaPage.class));What we're doing here is passing a base path and a package so that Wicket knows that all pages in that package should be rooted at that path. Now our urls are now:
Of course, if these URL patterns aren't what you are interested in, or you need to meet some legacy API criteria, you can always implement custom coding strategies by creating your own
IRequestTargetURLCodingStrategy. In the event you want to implement your own URL coding strategy, you just need to use the mount method that takes an implementation of theIRequestTargetURLCodingStrategyclass. The implementation may drastically vary by what you want to achieve, of course, and can work with any number of request targets.URL mounting is extensively used by the Wicket request system, and goes far beyond just bookmarkable pages. The extensive details go beyond what's really in scope for this tip; but all sorts of things can be managed through this API.
Until next time,
R.J. Lorimer
Contributing Editor -rj -at- javalobby.orgAuthor -http://www.coffee-bytes.comSoftware Consultant -http://www.numbersix.com20 replies so far (
Post your own)
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
On a related topic, a lot of our users have complained that wicket URLs can get very long.For example:
http://localhost:8080/wicket-examples/repeater?wicket:interface=:1:table:topToolbars:2:toolbar:headers:3:header:orderByLink:2:ILinkListener
In 1.2 we have introduced a UrlCompressor class that can be used to shift some of this information from the URL into the Session and make urls much shorter. So if you dont mind a little extra session baggage do this in your application subclass:
and the urls will look something like this:
http://localhost:8080/wicket-examples/repeater?wicket:interface=:1:22:7
We might have an easier way to enable this feature in the final 1.2 release, but it hasnt been decided yet.
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
Thanks again for another nice article! Write a few more and we won't be able to sell Wicket In ActionRe: Wicket 1.2: Control Wicket URLs with URL Mounting
I looked at the links that were posted in a reply to the announcement and saw that some of these new links also provided a way of setting variables like:site.com/var1/value-of-var1/var2/value-of-var2/
Would it also be possible to do this with no name? Like if we have a site called communitysite.com and want to look up a profile with profile id 421, could this then be done with this url:
communitysite.com/profile/421/ ?
Or even possibly multiple values like communitysite.com/profile/421/413/
and then the order dertermines what they are the values of.
Normally I would just do a communitysite.com/profile.php?profileid=421
but theres just something about those short urls
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
Johannes,Check out 'wicket.request.target.coding.IndexedParamUrlCodingStrategy' class - I think it's exactly what you're looking for!
Regards,
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
Mhh, this looks like another framework that claims to implement MVC pattern when it's actually a Template View framework.http://pragmaticj2ee.blogspot.com/2006/03/mvc-is-not-templates.html
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
Hi R.J.,Could you please show (e.g. in a separate Tips & Trcks thread) how to convert a simple html-only website into a basic Wicket-application using page templates containing graphics, stylesheets and navigation (the link to the current page should not be rendered as a link), that can be edited in any WYSIWYG-html-editor? Thanks in advance.
I'm sure, there are still a larger number of plain-html-websites which can be converted easily to a page-template-based Wicket-project that reduces the maintainance cost significantly and makes it simple to add new pages without the need to add navigation links to dozen of pages.
Mike
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
Wicket is event driven. If you want to compare to MVC the closest you can get is to say every component is its own MVC.Re: Wicket 1.2: Control Wicket URLs with URL Mounting
> Mhh, this looks like another framework that claims to> implement MVC pattern when it's actually a Template
> View framework.
>
> http://pragmaticj2ee.blogspot.com/2006/03/mvc-is-not-t
> emplates.html
Both your statement here and your blog items give me the idea that you haven't looked outside how MVC is usually proposed with Java web frameworks.
First of all, I couldn't care less whether we are a 'pure' MVC framework or not. It's just a pattern, and one that has gotten a very ambigous form for people anyway. Even Swing for instance doesn't apply MCV in it's original proposed form.
Now say, we use the shallow definition of MVC; seperation of model/view/controller. Why wouldn't Wicket fit in? The view and controller parts are handled by components - like Swing - and Wicket has the concept of models per component. The fact that components use templates for rendering has nothing to do with being an MVC framework or not; reasoning from the pattern you can regard that as an implementation detail of the view.
So, Wicket has the model/ view/ controller encapsulated on a component level. It doesn't get much more MVC than that - unless you look at the orginal discussion where you can see that probably none of the current Java frameworks, be it for the web or for the desktop, follow that pattern exactly.
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
> Hi R.J.,>
> Could you please show (e.g. in a separate Tips &
> Trcks thread) how to convert a simple html-only
> website into a basic Wicket-application using page
> templates containing graphics, stylesheets and
> navigation (the link to the current page should not
> be rendered as a link), that can be edited in any
> WYSIWYG-html-editor? Thanks in advance.
>
> I'm sure, there are still a larger number of
> plain-html-websites which can be converted easily to
> a page-template-based Wicket-project that reduces the
> maintainance cost significantly and makes it simple
> to add new pages without the need to add navigation
> links to dozen of pages.
>
> Mike
The real advantage of Wicket lies elsewhere. If you talk about plain-html-websites, that sounds like document oriented sites. There are a number of frameworks that'll probably be a better choice - if you need a framework at all for that - like for instance Cocoon.
Wicket is a very good choice when you have to create dynamic, relatively complex web applications.
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
No problem. It's just to remark how ambiguous this concept became during these years. In fact, most frameworks now simply claim to be "web frameworks" rather than "MVC frameworks", which is very more reasonable.My only "complaint" is about the "inversion of control" we often see in these frameworks. I mean giving the flow control to a hidden component (Action, Controller, or whatever) that in turn forwards to the JSP, instead of letting the JSP itself orchestrate the response. The final result is a Template View Pattern, that is useful sometimes, but is unneccessary for most applications. JSPs are the great hit of J2EE, and going back to servlets disguised of Actions or whatever is a step backwards.
Excuse me whether I misunderstood your webframework in this point.
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
> No problem. It's just to remark how ambiguous this> concept became during these years. In fact, most
> frameworks now simply claim to be "web frameworks"
> rather than "MVC frameworks", which is very more
> reasonable.
>
> My only "complaint" is about the "inversion of
> control" we often see in these frameworks. I mean
> giving the flow control to a hidden component
> (Action, Controller, or whatever) that in turn
> forwards to the JSP, instead of letting the JSP
> itself orchestrate the response. The final result is
> a Template View Pattern, that is useful sometimes,
> but is unneccessary for most applications. JSPs are
> the great hit of J2EE, and going back to servlets
> disguised of Actions or whatever is a step
> backwards.
> Excuse me whether I misunderstood your webframework
> in this point.
What Wicket tries to do is to give you the same level of abstraction as you would have with e.g. Swing (components). But instead of implementing layout management, we reuse HTML/ CSS, which is great for that purpose.
Wicket does not use actions in any sense. Components can recieve their own events, like:
Link myLink = new Link("someId", someModel) {
onClick() {
MyObject o = (MyObject)getModelObject();
// etc...
}
}
I think component level control is the way UI development should be done best. The oppostite is document oriented, like using JSP directly, and that works for sites that are mostly read-only and do not have to do a lot of state keeping (like you would need when implementing for instance wizards).
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
> The real advantage of Wicket lies elsewhere. If you> talk about plain-html-websites, that sounds like
> document oriented sites. There are a number of
> frameworks that'll probably be a better choice - if
> you need a framework at all for that - like for
> instance Cocoon.
Well, I've read about the previewability of Wicket markup on its website and this is a very important point for us. Unfortunately, there are not much frameworks which support that. Are you sure, Apache Cocoon can do that? I skimmed their website and it appears to render XML files using stylesheets. That's not what we want. We want to edit plain-HTML page-templates.
> Wicket is a very good choice when you have to create
> dynamic, relatively complex web applications.
Don't know yet how complex our website will become.
Mike
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
There have been a couple of questions like this on our user list. I believe what people eneded up doing was creating a wicket page that streamed the static html files into its body. That way you can access any static template by providing its name as a query parameter and at the same time create real wicket pages alongside.I would ask on wicket-user list for more details.
Re: Wicket 1.2: Control Wicket URLs with URL Mounting
or check out this blog item .