(1)首先配置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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>struts2</display-name> <!-- 配置struts2的过滤器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app> 注意:过滤器使用的是类: org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
在旧版本中使用的是 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。
(2)struts.xml的配置:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <package name="default" namespace="/" extends="struts-default"> <action name="hellostruts2" class="com.lonton.struts2.action.HelloWorld" method="say"> <result name="success">/helloworld.jsp</result> <result name="hello">/hello.jsp</result> </action> </package> </struts>
3.写一个类继承ActionSupport(也可不继承):
package com.lonton.struts2.action; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld extends ActionSupport{ public String say() { System.out.println("++++++++++++++++++++"); return "hello"; } @Override public String execute() throws Exception { System.out.println("--------------------"); return SUCCESS; } }
注意:Action的类名一定要和struts.xml中action标签中的类名和方法名一致,并且在相应方法中返回String字符串。
4.测试:
启动服务器,在浏览器中访问:http://localhost:8080/struts2/hellostruts2.action
界面会相应的跳转到helloworld.jsp页面显示。
5.可能遇到的问题:
(1)ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,在web.xml中配置正确过滤器类<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>这是2.5以上版本的StrutsPrepareAndExecuteFilter类所在的包。
(2)Tomcat无法启动,Caused by: Java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger,将log4j-api-2.7.jar添加到项目中。
(3)通配符使用问题遇到的错误,可参考:http://blog.csdn.net/byx903678890/article/details/72877922