【问题标题】:How do I use a Stripes action as my web app's welcome file?如何使用 Stripes 操作作为我的 Web 应用程序的欢迎文件?
【发布时间】:2011-03-07 19:16:38
【问题描述】:

我有一个名为 HomeActionBean 的动作 bean,Stripes 已将它绑定到 URL“Home.action”。 URL 绑定有效。现在我想使用“Home.action”作为我的欢迎文件,如下所示:

<welcome-file-list>
  <welcome-file>Home.action</welcome-file>
</welcome-file-list>

这不适用于 Stripes 快速入门指南中的默认配置。我得到了错误

一个请求通过了 Stripes 的某些部分而没有被包装在 StripesRequestWrapper 中。 [...]

我发现如果我添加这条线,我可以让它工作

<dispatcher>FORWARD</dispatcher>

到我的 web.xml 像这样:

<filter-mapping>
  <filter-name>StripesFilter</filter-name>
  <servlet-name>StripesDispatcher</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
</filter-mapping>

我的问题是:这是将 Stripes 操作用作欢迎文件的适当方式吗?将带有“FORWARD”的那行添加到我的 web.xml 是否会产生其他可能不需要的后果?

【问题讨论】:

    标签: java stripes


    【解决方案1】:

    要将操作 bean 绑定到主页 URL,您应该使用:@UrlBinding("/"),如下所示:

    @UrlBinding("/")
    public class HomepageAction {
       // .. action bean code..
    }
    

    【讨论】:

    • 谢谢,成功了!还有一件事:为了完成这项工作,我必须让 StripesDispatcher 成为应用程序的默认 servlet,方法是为其提供 url 模式“/”。作为一个 Stripes 初学者,我不太确定这会产生什么影响。但我的猜测是这是一件好事。现在我应该重写 nameBasedActionResolver 的 handleActionBeanNotFound 和/或 findView 方法,以便优雅地处理无处可去的请求,对吧?
    • 使用该 URL 模式表明 Stripes 控制器将处理所有请求。 Stripes 控制器会将这些请求委托给正确的操作 bean,如果没有匹配到,它将以 404 响应。这对于任何 Web 服务器来说都是正常的行为,我不确定在哪种情况下需要正确响应任何 URL 接收。但是您可以让 404 由操作 bean 处理,请参阅:permalink.gmane.org/gmane.comp.java.stripes.user/10617
    猜你喜欢
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2013-11-28
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    相关资源
    最近更新 更多