我通过弗雷德·达乌德的条纹书工作,并尝试转换Hello World应用程序使用友好的URL,因为我不喜欢的 HTTP://本地主机:8080 / getting_started / Hello.action

下面是前...

的index.jsp:

<jsp:forward page="/Hello.action"/>

的web.xml:

<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>*.action</url-pattern>
</servlet-mapping>

和我有我的HelloActionBean没有UrlBinding。我有书例子的工作。

我想知道如果这本书例子可以适应条纹的早期版本,因为我已经下载了1.5.1和我的web.xml定义StripesFilter和StripesDispatcher而我见过的其他地方使用的DynamicMappingFilter,例如在上的TheServerSide这篇文章由Fred。

反正我进行了如下修改:

的index.jsp:

<jsp:forward page="/hello"/>

的web.xml:

<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/*</url-pattern>
 </servlet-mapping>

HelloActionBean.java:

**@UrlBinding("/hello")**
public class HelloActionBean implements ActionBean 
{

然而,当我尝试加载通过 HTTP应用程式://本地主机:8080 / getting_started 我看到这:

net.sourceforge.stripes.exception.ActionBeanNotFoundException: Could not locate an ActionBean that is bound to the URL [/]. Commons reasons for this include mis-matched URLs and forgetting to implement ActionBean in your class. Registered ActionBeans are: {/hello=class stripesbook.action.HelloActionBean, /controller/DefaultView.action=class net.sourceforge.stripes.controller.DefaultViewActionBean, /hello/=class stripesbook.action.HelloActionBean, /controller/DefaultView.action/=class net.sourceforge.stripes.controller.DefaultViewActionBean}
    at net.sourceforge.stripes.controller.AnnotatedClassActionResolver.getActionBean(AnnotatedClassActionResolver.java:341)

和,如果我通过 HTTP访问它://本地主机:8080 / getting_started /你好的服务器似乎进入一个循环之后另一抛出一个例外。

任何建议表示赞赏 - 感谢

有帮助吗?

解决方案

我已经尝试了一些其他的东西,并得到它的工作...

我删除web.xml中的现有的DispatcherServlet servlet和servlet映射定义和与DynamicMappingFilter替换。

作为奖励,来改变链路事件传递的方式,使例如

http://localhost:8080/getting_started/hello?randomDate=

变为

http://localhost:8080/getting_started/hello/randomDate

上的ActionBean改变UrlBinding为:

@UrlBinding("/hello/{$event}")

其他提示

它没有工作对我来说,只需更换与DynamicMappingFilter调度程序的servlet(我得到了DynamicMappingFilter的错误消息只适用于结合StripesFilter)。所以,我有两个过滤器和一个滤波器映射在我的web.xml中配置现在:

<filter>
    <display-name>Stripes Filter</display-name>
    <filter-name>StripesFilter</filter-name>
    <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class>
    <init-param>
        <param-name>ActionResolver.Packages</param-name>
        <param-value>com.package.myactions.package</param-value>
    </init-param>
</filter>

<filter>
    <description>Dynamically maps URLs to ActionBeans.</description>
    <display-name>Stripes Dynamic Mapping Filter</display-name>
    <filter-name>DynamicMappingFilter</filter-name>
    <filter-class>
        net.sourceforge.stripes.controller.DynamicMappingFilter
    </filter-class>
</filter>

<filter-mapping>
    <filter-name>DynamicMappingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top