首先是web.xml的配置,这个是项目加载的开始。
1 <display-name></display-name> 2 <!--struts2配置开始--> 3 <filter> 4 <filter-name>struts2</filter-name><!--和mapping中name一致--> 5 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 6 </filter> 7 <filter-mapping> 8 <filter-name>struts2</filter-name> 9 <url-pattern>*.do</url-pattern> 10 <url-pattern>*.jsp</url-pattern> 11 </filter-mapping> 12 <!--struts2配置结束--> 13 <welcome-file-list> 14 <welcome-file>index.jsp</welcome-file> 15 </welcome-file-list>
然后是src下的struts.xml文件,它是struts配置文件的源头。
1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 6 <struts> 7 <!-- 编码 --> 8 <constant name="struts.i18n.encoding" value="UTF-8" /> 9 <!-- 扩展名 --> 10 <constant name="struts.action.extension" value="do,action" /> 11 <!-- 浏览器是否缓存静态数据 --> 12 <constant name="struts.serve.static.browserCache" value="false" /> 13 <!-- struts配置文件修改后自动加载 --> 14 <constant name="struts.configuration.xml.reload" value="true" /> 15 <!-- 开发模式下打印出更详细的错误信息 true false --> 16 <constant name="struts.devMode" value="true" /> 17 <!-- 默认主体 --> 18 <constant name="struts.ui.theme" value="simple" /> 19 <!-- 是否支持动态调用 --> 20 <constant name="struts.enable.DynamicMethodInvocation" value="false" /> 21 <!-- 上传文件的大小 --> 22 <constant name="struts.multipart.maxSize" value="2097152" /> 23 24 <package name="base" extends="struts-default"></package> 25 <include file="strutsxml/struts.xml"></include> <!-- 值是可以变的,改成你对应的文件就好 --> 26 <include file="strutsxml/struts_ajax.xml"></include> <!-- 可以加载多个子配置文件 --> 27 </struts>
加载主配置文件后,会加载子配置文件。这里就写出一个了,另一个可有可无,看项目结构了。
strutsxml/struts.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 6 <struts> 7 <package name="default" extends="base" namespace="/"> 8 <!-- class的值对应java类,默认调用execute方法;可增加属性method,值为方法名已修改调用方法 --> 9 <action name="Categories" class="com.junjuping.ui.action.Categories"> 10 <result name="succ">/CategoriesList.jsp</result> <!-- 对应jsp文件;name值则为java类返回的字符串 --> 11 </action> 12 </package> 13 </struts>
子配置文件的action标签也可直接放到主配置文件中(package标签里)。
默认调用对应的java类中的execute方法。
com.junjuping.ui.action.Categories.java
1 public class Categories 2 { 3 public String execute() throws Exception { 4 String result = ""; // 返回值 5 HttpServletRequest request = ServletActionContext.getRequest(); 6 HttpServletResponse response = ServletActionContext.getResponse(); 7 CategoriesServce categoriesServce = new CategoriesServce(); 8 ArrayList<String[]> resultList = categoriesServce.select(); 9 request.setAttribute("resultList", resultList); 10 result = "succ"; 11 return result; 12 }}
jsp文件在这里就不再说明了。