常见属性及其说明: (1)name 包的名字;以方便在其他处引用此包,此属性是必须的。 包名不能重复;
(2)extends 当前包继承自哪个包,用于声明继承的包。 在struts中,包一定要继承struts-default ;
struts-default在struts-default.xml中定的包
(3)abstract 表示当前包为抽象包; 抽象包中不能有action的定义,否则运行时期报错
abstract=true 只有当当前的包被其他包继承时候才用!
如:
<package name="basePackage" extends="struts-default" abstract="true"></package>
<package name="user" extends="basePackage">
(4) namespace 指定名称空间,也就是访问此包下的Action需要访问的路径,默认为"/"
作为路径的一部分
访问路径= http://localhost:8080/项目/名称空间/ActionName
2:action 配置请求路径与Action类的映射关系, 常见属性及其说明:
(1)name 请求路径名称,用于配置Action对象被请求的URL映射
(2)class 请求处理的aciton类的全名
(3)method 请求处理方法,设置请求Action对象时,调用对象的哪一个方法。
3:result 常见属性及其说明:
(1)name action处理方法返回值 。
(2)type 跳转的结果类型,用于设置返回结果的类型,如请求转发,重定向等。
(3)标签体中指定跳转的页面。
简单的配置如下所示:
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 <package name="helloWorld" extends="struts-default" abstract="false" namespace="/"> 9 <!-- 定义action --> 10 <action name="hello" class="com.bie.HelloAction" method="execute"> 11 <!-- 显示成功的jsp页面 --> 12 <result name="success" type="dispatcher">success.jsp</result> 13 </action> 14 </package> 15 </struts>
4:通配符实现简化配置
第一步:引包,略过,前面已经写过
第二步:配置web.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <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_3_0.xsd" id="WebApp_ID" version="3.0"> 3 <display-name>struts2_20170219</display-name> 4 <welcome-file-list> 5 <welcome-file>index.html</welcome-file> 6 <welcome-file>index.htm</welcome-file> 7 <welcome-file>index.jsp</welcome-file> 8 <welcome-file>default.html</welcome-file> 9 <welcome-file>default.htm</welcome-file> 10 <welcome-file>default.jsp</welcome-file> 11 </welcome-file-list> 12 13 <!-- 引入struts2的核心过滤器 --> 14 <filter> 15 <!-- 过滤器的名称 --> 16 <filter-name>struts2</filter-name> 17 <!-- 过滤器类 --> 18 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 19 </filter> 20 <filter-mapping> 21 <!-- 过滤器名称 --> 22 <filter-name>struts2</filter-name> 23 <!-- 过滤器映射 --> 24 <url-pattern>/*</url-pattern> 25 </filter-mapping> 26 </web-app>
第三步:开发action
1 package com.bie; 2 3 import com.opensymphony.xwork2.ActionSupport; 4 5 /** 6 * @author BieHongLi 7 * @version 创建时间:2017年2月20日 下午1:29:55 8 * 9 */ 10 public class RegisterAction extends ActionSupport{ 11 12 private static final long serialVersionUID = 1L; 13 14 public String login(){ 15 System.out.println("登陆的方法"); 16 return SUCCESS; 17 } 18 19 public String register(){ 20 System.out.println("注册的方法"); 21 return SUCCESS; 22 } 23 }
第四步:配置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 <!-- 声明包 --> 8 <package name="helloWorld" extends="struts-default" abstract="false" namespace="/"> 9 <!-- 定义action --> 10 <action name="hello" class="com.bie.HelloAction" method="execute"> 11 <!-- 显示成功的jsp页面 --> 12 <result name="success" type="dispatcher">success.jsp</result> 13 </action> 14 </package> 15 16 <!-- 声明包 --> 17 <package name="login" extends="struts-default" abstract="false" namespace="/"> 18 <action name="login" class="com.bie.RegisterAction" method="login"> 19 <result name="success">success.jsp</result> 20 </action> 21 22 <action name="register" class="com.bie.RegisterAction" method="register"> 23 <result name="success">success.jsp</result> 24 </action> 25 </package> 26 27 <!-- 通配符的实现简单配置 --> 28 <package name="loginRegister" extends="struts-default" abstract="false" namespace="/"> 29 <action name="login_*_*" class="com.bie.RegisterAction" method="{1}"> 30 <result name="success">success.jsp</result> 31 </action> 32 </package> 33 </struts>
结果如下,访问的时候如此访问即可。