As it seems like you want to find a solution.... the option is to write an ActionMapper that reverses the order the URLs are currently determined. Instead of looking for an action first, you would need to look for a static resource first, and then if not found check for an action.

/Ian

Struts2 Fan wrote:
I know that discussion but it "html" extention locks some of the
functionality of struts2, it would be better to change it from "html" to
something else. If you say *it is not easy*, at least I will post a message
on the appfuse forum.

Ian Roughley wrote:
I think there was a discussion from Matt about this (appfuse using html extensions) a while back, you might want to check the archives. On the s2 side, there are options, but I'm not sure there is an easy solution for using .html as an extension.

/Ian

Struts2 Fan wrote:
Opps.... How can I make struts to ignore this and read them as html? Or
do I
have to change the extention to get it work.

Thanks for the answer.


Ian Roughley wrote:
This line:

There is no Action mapped for namespace
/struts/dojo/src/widget/templates
and action name TabContainer. Seems to suggest that you may have changed the extension from ".action" to ".html", so s2 is looking for an action called TabContainer.

/Ian
Struts2 Fan wrote:
I met the same error, too.

I have just a simple jsp

---- start of simple.jsp ----
<%@ include file="/common/taglibs.jsp" %>
<head>
    <s:head theme="ajax"></s:head>
</head>
<s:tabbedPanel id="test2" theme="simple" cssStyle="width: 500px;
height:
300px;" doLayout="true">
    <s:div theme="ajax" id="left" label="left">
        <s:form>
            <s:textfield name="tt" label="Test Text"/>  <br/>
            <s:textfield name="tt2" label="Test Text2"/>
        </s:form>
    </s:div>
    <s:div theme="ajax" id="right" label="right">
        This is the right pane<br/>
    </s:div>
</s:tabbedPanel>
---- end of simple.jsp ----

Here it gives the following error

---- start of error ----
 ERROR [btpool0-2] Dispatcher.serviceAction(512) | Could not find
action
or
result
There is no Action mapped for namespace
/struts/dojo/src/widget/templates
and action name TabContainer. - [unknown location]
        at
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
        at
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
        at
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
        at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
org.appfuse.webapp.filter.StaticFilter.doFilterInternal(StaticFilter.java:106)
        at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:350)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:75)
        at
net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:92)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
org.appfuse.webapp.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:64)
        at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
com.opensymphony.clickstream.ClickstreamFilter.doFilter(ClickstreamFilter.java:42)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
        at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
        at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:354)
        at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:226)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:621)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
        at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
        at org.mortbay.jetty.Server.handle(Server.java:269)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:678)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:492)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:199)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:339)
        at
org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270)
        at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
---- end of error ----


---- start of how it is shown ----
http://www.nabble.com/file/p12139503/struts_error.jpg ---- end of how it is shown ----

What did I miss? I am using 2.0.9
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Reply via email to