我的应用程序逻辑全部排序。它只是让应用程序运行"我,我遇到了问题。
我知道我需要(并且有)一个通过显示主页(在我的例子中称为" UserPage")来启动应用程序的类。但是,即使在正确填写我的web.xml并实现WicketApplication类之后,我仍然可以获得404。
两者的代码如下。有人可以通过两种方式帮助我:
•告诉我哪里出错(及其原因)
•两个文件需要的样子以及更正的位置。
提前致谢。
WicketApplication.java
package com.me.textboxformtutorial;
import com.me.textboxformtutorial.UserPage;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.protocol.http.WebApplication;
public class WicketApplication extends WebApplication {
@Override
public Class<UserPage> getHomePage()
{
return UserPage.class;
}
}
的web.xml
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>WicketTextBoxExample</servlet-name>
<servlet-class>UserPage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WicketTextBoxExample</servlet-name>
<url-pattern>/textboxexample</url-pattern>
</servlet-mapping>
<filter>
<filter-name>wicketFilter</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>com.me.textboxformtutorial.WicketApplication</param-value>
</init-param>
</filter>
</web-app>
答案 0 :(得分:4)
这里的问题是Wicket页面不是servlet。 Wicket是一个框架,它添加了自己的抽象层来处理请求和呈现结果,因此您不需要在web.xml
中单独声明所有页面。
设置Wicket的正确方法是将您定义的过滤器映射到所需的URL:
<filter-mapping>
<filter-name>wicketFilter</filter-name>
<url-pattern>/*</url-pattern> <!-- or /textboxexample/* if you want your application to map to that url -->
</filter-mapping>
删除这些条目:
<servlet>
<servlet-name>WicketTextBoxExample</servlet-name>
<servlet-class>UserPage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WicketTextBoxExample</servlet-name>
<url-pattern>/textboxexample</url-pattern>
</servlet-mapping>
这会将给定网址的所有请求都提供给Wicket过滤器,该过滤器将处理并解析它们,并将它们移交给相应的页面。
如果你使用Maven,你可以从Wicket Quickstart Archetype (archetypeGroupId=org.apache.wicket, archetypeArtifactId=wicket-archetype-quickstart
创建你的项目,为你完成所有这些。