Struts.xml: Actino中的两种方式: 1. 同个package 处理 ============================================================================== • 重定向到同一个包中的的不同Action :(redirect Action) <?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> <package name="HelloWorld" namespace="/com.org.action.test" extends="struts-default"> <action name="HelloWorld" class="com.org.action.test.HelloWorld"> <!-- 判断成功后跳进action取值 --> <result type="redirectAction" name="success"> <param name="actionName">LoginAction</param> <param name="namespace">/com.org.action.test</param> </result> <!-- 失败后处理失败结果 --> <result name="error">/success.jsp</result> </action> <action name="LoginAction" class="com.org.action.test.LoingAction" > <result name="loginsuccess">/success.jsp</result> </action> </package> </struts> • 转发到同一个包中的的不同Action :(chain) <?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> <package name="HelloWorld" namespace="/com.org.action.test" extends="struts-default"> <action name="HelloWorld" class="com.org.action.test.HelloWorld"> <!-- 判断成功后转发到action取值 --> <result type="chain" name="success"> <param name="actionName">LoginAction</param> <param name="namespace">/com.org.action.test</param> </result> <!-- 失败后处理失败结果 --> <result name="error">/success.jsp</result> </action> <action name="LoginAction" class="com.org.action.test.LoingAction" > <result name="loginsuccess">/success.jsp</result> </action> </package> </struts> •chain :为转发到某个Action中 •actionName :获取将要进入的ActionName •namespace : Aciton到命名名称 备:ActionName 必须和我们的要处理的Action Name 是一致的。 2. 不同个package ============================================================================== • 重定向方式: (redirectAction) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD ruts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="exmaple.test" namespace="/exmaple.test" extends="struts-default"> <action name="Login*" class="exmaple.test.Login" method="{1}"> <result type="redirectAction"> <param name="actionName">dashboardexecute1</param> <param name="namespace">/secure</param> </result> </action> </package> <package name="secure" extends="struts-default" namespace="/secure"> <action name="dashboard*" class="example.Dashboard" method="{1}"> <result>/fail.jsp</result> </action> </package> </struts> •转发方式:(chain) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD ruts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="exmaple.test" namespace="/exmaple.test" extends="struts-default"> <action name="Login*" class="exmaple.test.Login" method="{1}"> <result type="redirectAction"> <param name="actionName">dashboardexecute1</param> <param name="namespace">/secure</param> </result> </action> </package> <package name="secure" extends="struts-default" namespace="/secure"> <action name="dashboard*" class="example.Dashboard" method="{1}"> <result>/fail.jsp</result> </action> </package> </struts> 基本步骤: ===================================================================== 引入包: Web.xml配置过滤器: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" 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_2_5.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.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-list> </web-app> Page: <!-- 动态全局 --> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <!-- 使struts处于开发状态 --> <constant name="struts.devMode" value="true" /> <!-- 引入其他配置文件 --> <include file="example.xml"/> <!—设置国际标准文件--> <constant name="struts.custom.i18n.resources" value="文件名" /> 配置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> <package name="HelloWorld" namespace="/com.org.action.test" extends="struts-default"> <action name="HelloWorld" class="com.org.action.test.HelloWorld"> <!-- 判断成功后跳进action取值 --> <result type="redirectAction" name="success"> <param name="actionName">LoginAction</param> <param name="namespace">/com.org.action.test</param> </result> <!-- 失败后处理失败结果 --> <result name="error">/success.jsp</result> </action> <action name="LoginAction" class="com.org.action.test.LoingAction" > <result name="loginsuccess">/success.jsp</result> </action> </package> </struts> 指定Action中的某个方法: 1. *:代表action后可以指定方法 , 使用’{1}’占位符方式获取 <action name=”Login*” class=”package.actionName” method=“{1}” /> a) 在提交表单时方法名直接跟在acitn_Name后面 <s:form action=”Loginexecute1’ /> 2. !:在提交表单的时使用非指定action中将要处理的方法 <s:form action=”Login!execute1” /> 页面引入标签: <%@taglib prefix="s" uri="/struts-tags" %> 提交表单: <s:form action="com.org.action.test/HelloWorld!execute1"> <s:textfield name="user.userName" label="LoginName" value="xiaoling"/> <s:textfield name="user.userPass" label="LoginPass" value="xiaoling"/> <s:submit label="Login"/> </s:form> 遍历一个List集合: <%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <% List list = new ArrayList(); list.add("Max"); list.add("Scott"); list.add("Jeffry"); list.add("Joe"); list.add("Kelvin"); request.setAttribute("names", list); %> <html> <head> <title>Iterator</title> </head> <body> <h3>Names: </h3> <!-- 1、此处的空property元素用于获得当前iterator的值 2、status被设成stuts,在iterator的里面就可以通过#stuts取得IteratorStatus的对象。IteratorStatus类包含当前序号信息,如是否第一个或最后一个,是否为奇数序号。这些信息在我们做格式化的时候,显得非常有用。 --> <ol> <s:iterator value="#request.names" status="stuts"> <s:if test="#stuts.odd == true"> <li>White <s:property /></li> </s:if> <s:else> <li style="background-color:gray" mce_style="background-color:gray"><s:property /></li> </s:else> </s:iterator> </ol> </body> </html>