我正在阅读 Fred Daoud 的 Stripes 书,并尝试将 Hello World 应用程序转换为使用友好的 URL,因为我不是像http://localhost:8080/getting_started/Hello.action这样的基于后缀的映射的忠实粉丝。
这里是前...
index.jsp:
<jsp:forward page="/Hello.action"/>
网页.xml:
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
我的 HelloActionBean 上没有 UrlBinding。我有本书的例子工作。
我想知道书籍示例是否适合早期版本的 Stripes,因为我已经下载了 1.5.1,并且我的 web.xml 定义了 StripesFilter 和 StripesDispatcher,而我在其他地方看到了 DynamicMappingFilter,例如在Fred的这篇文章中在服务器端。
无论如何,我做了以下更改:
index.jsp:
<jsp:forward page="/hello"/>
网页.xml:
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
HelloActionBean.java:
**@UrlBinding("/hello")**
public class HelloActionBean implements ActionBean
{
但是,当我尝试通过http://localhost: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://localhost:8080/getting_started/hello访问它,服务器似乎进入一个循环,一个接一个地抛出异常。
任何建议表示赞赏 - 谢谢。