我们需要一个映射,以配合URL,HelloWorldAction类(模型),HelloWorld.jsp(图)。映射告诉Struts 2框架的类将响应用户的操作(URL),这一类的方法将被执行,什么视图来显示字符串结果的基础上,该方法返回。
因此,让我们创建一个名为struts.xml中。由于Struts2要求struts.xml中存在的类文件夹中。因此,创建的WebContent/WEB-INF/classes文件夹下struts.xml文件。Eclipse不会创建“类”文件夹下,所以你需要自己做。要做到这一点,在项目浏览器和WEB-INF文件夹上点击右键,选择“新建”>“文件夹”。你的struts.xml中应该是这样的:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="helloworld" extends="struts-default"> <action name="hello" class="com.yiibai.struts2.HelloWorldAction" method="execute"> <result name="success">/HelloWorld.jsp</result> </action> </package> </struts>
上面的配置文件的几句话。在这里,我们设置常数struts.devModeto为true,因为我们需要看到一些有用的日志消息。我们再定义一个名为HelloWorld包。创建一个包是有用的,当你想要创建新的动作。在我们的例子中,我们的行动命名为“hello”相应的URL/hello.action和备份HelloWorldAction.class。执行方法HelloWorldAction.class方法被调用时运行URL/hello.action。如果结果execute方法返回“success”,那么我们就用户HelloWorld.jsp。
下一步是创建一个web.xml文件,该文件的任何请求的入口点到Struts2。Struts2的应用程序的入口点,将是一个部署描述符(web.xml)中定义的过滤器。因此,我们将定义在web.xml中一个条目oforg.apache.struts2.dispatcher.FilterDispatcher类。WebContent下WEB-INF文件夹下需要创建web.xml文件。 Eclipse已经在创建项目时创建了一个web.xml文件。但是我们还需要修改如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>Struts 2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
我们已经指定index.jsp是我们欢迎(welcome)文件。我们已经配置Struts2过滤器上运行的所有URL(即,任何URL匹配模式/*)