Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将Stripes action用作我的web应用程序';欢迎档案是什么?_Java_Stripes - Fatal编程技术网

Java 如何将Stripes action用作我的web应用程序';欢迎档案是什么?

Java 如何将Stripes action用作我的web应用程序';欢迎档案是什么?,java,stripes,Java,Stripes,我有一个名为HomeActionBean的ActionBean,它绑定到URL“Home.action”。URL绑定工作正常。现在我想使用“Home.action”作为我的欢迎文件,如下所示: <welcome-file-list> <welcome-file>Home.action</welcome-file> </welcome-file-list> <filter-mapping> <filter-name>

我有一个名为HomeActionBean的ActionBean,它绑定到URL“Home.action”。URL绑定工作正常。现在我想使用“Home.action”作为我的欢迎文件,如下所示:

<welcome-file-list>
  <welcome-file>Home.action</welcome-file>
</welcome-file-list>
<filter-mapping>
  <filter-name>StripesFilter</filter-name>
  <servlet-name>StripesDispatcher</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
</filter-mapping>
@UrlBinding("/")
public class HomepageAction {
   // .. action bean code..
}

家庭行动
这不适用于Stripes quickstart guide中的默认配置。我得到了错误

一个请求在没有包装在StripesRequestWrapper中的情况下传递到Stripes的某些部分。[……]

我想如果我加上这条线,我就能让它工作

<dispatcher>FORWARD</dispatcher>
转发
我的web.xml如下所示:

<welcome-file-list>
  <welcome-file>Home.action</welcome-file>
</welcome-file-list>
<filter-mapping>
  <filter-name>StripesFilter</filter-name>
  <servlet-name>StripesDispatcher</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
</filter-mapping>
@UrlBinding("/")
public class HomepageAction {
   // .. action bean code..
}

条纹滤光片
条带调度器
要求
向前地

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

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

<welcome-file-list>
  <welcome-file>Home.action</welcome-file>
</welcome-file-list>
<filter-mapping>
  <filter-name>StripesFilter</filter-name>
  <servlet-name>StripesDispatcher</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
</filter-mapping>
@UrlBinding("/")
public class HomepageAction {
   // .. action bean code..
}

谢谢,成功了!还有一件事:为了实现这一点,我必须让StripeSpatcher成为应用程序的默认servlet,方法是为它提供url模式“/”。作为一个条纹的初学者,我不太确定这会产生什么影响。但我猜这是件好事。现在,我可能应该重写nameBasedActionResolver的handleActionBeanNotFound和/或findView方法,以便优雅地处理无处可去的请求,对吗?通过该URL模式,您可以指示Stripes控制器将处理所有请求。Stripes控制器将把这些请求委托给正确的操作bean,如果没有匹配的操作bean,它将用404响应。这对于任何web服务器来说都是正常的行为,我不确定在什么样的情况下正确地响应任何URL接收。但您可以让404由动作bean处理,请参见: