struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Husted" <>
Subject Re: SmartURLs (fork of s2: problem with codebehind plugin)
Date Mon, 10 Sep 2007 13:38:20 GMT
So, I've been having great fun with the SmartURLs plugin, and, well, I
have some notes :)

I'd be happy to open issues for each of these on the Google Code site,
but I thought it might be fun to bunch them together for the group.

 * Is SEO "Search Engine Optimization"? What makes hello-action more
compliant than HelloAction?

 * Would it be possible to support ReST-style parameters (which I
believe are also SEO-preferred), so that
"hello-world/save?message=Howdy" could be expressed
   ** Something like "hello-world/save/+/message/Howdy" might work as
well, if including a parameter-start flag would simplify the code. (It
might simplify things for the developer too!)

 * Should we look for .html after .jsp, .ftl, .vm? Is the extension
list configurable?

 * Should we also look a page named for the result type in the current
namespace and the default namespace (/foo/hello-error.jsp,
/foo/error.jsp, /error.jsp, and then fall back to /foo/hello.jsp)?
   ** A key use for "global" result-code pages might be login.
   ** A side-effect would be that a page should probably NOT be named
"success.jsp" :) But, in my experience, when it comes to result pages,
success is local and failure is global.

 * If we branch to another ${result} page, should we look for a
${result} action, and automatically chain the actions?

 * Could there be a smarturls.base.action.package that automatically
incorporated "sub" packages. Right now, it seems that we need to list
each and every package.
   ** smarturls.action.base.packages = "content"
   *** automatically includes content,,, ...

 * Using "" for a the base.result.location exposes an exception.

SEVERE: Exception starting filter struts2
java.lang.IllegalArgumentException: Unable to make a URL
    at org.texturemedia.smarturls.DefaultResultMapBuilder.createFromResources(
    at org.texturemedia.smarturls.PackageBasedActionConfigBuilder.createActionConfig(
    at org.texturemedia.smarturls.PackageBasedActionConfigBuilder.buildActionConfigs(
    at org.texturemedia.smarturls.SmartURLsConfigurationProvider.loadPackages(
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(
    at org.apache.struts2.dispatcher.Dispatcher.init(
    at org.apache.struts2.dispatcher.FilterDispatcher.init(
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(
    at org.apache.catalina.core.StandardContext.filterStart(
    at org.apache.catalina.core.StandardContext.start(
    at org.apache.catalina.core.ContainerBase.start(
    at org.apache.catalina.core.StandardHost.start(
    at org.apache.catalina.core.ContainerBase.start(
    at org.apache.catalina.core.StandardEngine.start(
    at org.apache.catalina.core.StandardService.start(
    at org.apache.catalina.core.StandardServer.start(
    at org.apache.catalina.startup.Catalina.start(
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(
    at org.apache.catalina.startup.Bootstrap.main(
Caused by: no protocol: /struts.xml
    at<init>(Unknown Source)
    at<init>(Unknown Source)
    at<init>(Unknown Source)
    ... 33 more



To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message