struts2核心配置文件

        struts2的核心配置文件为struts.xml,一般放在src目录下。struts2配置使用包来管理Action。包的作用与java中包的作用相似,用于管理一组业务功能相关的Action。在实际应用中,应将一组业务功能相关的Action放在同一个包下。

注意:struts.xml中的包与Action类所在的包无关。

标签

(1)name属性

        配置包时必须指定name属性,该属性可以任意取值,但是必须唯一。其与java的类包间无对应关系。若其它包要继承该包,则必须通过该属性进行引用。

(2)namespace属性

        包的namespace属性用于定义该包的命名空间。命名空间是访问该包下Action的路径的一部门。此属性是必须的,且不能为空。但命名空间可以为“/”。

(3)extends属性

        通常情况下,包需要继承struts-default包。因为struts2的11个返回类型,35个拦截器,默认拦截器栈等struts2的主要功能,都定义在这个包中,继承了这个包,也就拥有了这些功能。struts-default包定义在struts-default.xml中。

(4)abstract属性

        包还可以通过abstract="true"定义为抽象包。抽象包中是不能包含Action的。抽象包一般就是用于被继承的。struts-default包即为抽象包。

标签

(1)name属性

        在struts2中,访问struts2中的action的URL路径由两部分组成:包的命名空间+action的name属性值。

(2)method属性

        Action标签有一个属性method,该属性用于指定所要执行的Action类的哪个Action方法。若没有指定该属性,则默认值为"execute",即执行指定Action类的execute方法。

(3)class属性

        class属性用于指定该Action所要执行的Action类。其有三种写法:

                A.直接写要执行的类的全限定类名。

                B.在SSH中,Action交由Spring容器管理,此时class属性要设置为一个伪类名。

                C.class属性缺省。对于class属性缺省情况是指,若用户提交某个请求后,不需要经过某个Action类的处理,而是直接要转向某个视图页面,如简单的页面间的超链接,则可以采用缺省的方式。因为在class缺省的情况下,会默认执行ActionSupport类。为什么会默认执行这个类呢?是因为在Struts-default包中通过指定了默认执行的类。该类有个有个execute()方法,其返回值为常量SUCCESS,即字符串"success"。

标签

(1)name属性

        result标签用于指定Action执行完毕后所要转向的视图资源,其name属性指定该视图的名称,如果name属性缺省,默认值为字符串常量"success"。

(2)type属性

        struts2中共提供了11中视图转向类型,类型由result标签的type属性指定,type属性的值在struts-default.xml中可以查看到。需要注意到,在dispatcher后设置的default为true。即默认为dispatcher。

struts2核心配置文件_第1张图片

        注意:对于请求转发的页面,可以是web-inf中的页面,而重定向的页面,是不能为web-inf中的页面的,因为重定义相当于用户再次发出一次请求,而用户是不能直接访问web-inf中的资源的。

        下面重点介绍以下四种转向方式。      

 A.dispatcher转发

        该转向类型用于完成请求转发的功能,即为服务器内跳转,请求转发是可以将请求参数传递给要转发的下一级页面的。dispatcher为默认的转向类型。      

代码示例

请求页面

	
	
name:
age:

Action

package cn.ccnu.actions;

public class LoginAction {
	private String name;
	private int age;

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	public String execute(){
		return "success";
	}
}
struts.xml


    
        
        	/welcome.jsp
        
    
结果页面

	
	name = ${name } 
age = ${age }
执行结果

struts2核心配置文件_第2张图片

B.redirect跳转

        该转向类型用于完成请求重定向的功能。因此,redirect是无法将Action中属性值传递给要转向的下一个页面的。

例如,如果将上面示例中type值改为redirect,则发现其结果为:


        说明redirect无法将Action中属性值传递给要转向的下一个页面得。

        要想实现参数值可以转向下一个页面可以使用方法。

将struts.xml该成如下


    
        
        	
        		/welcome.jsp
        		${name }
        		${age }
        	
        
    
结果页面改为:

	
	uname = ${param.name } 
age = ${param.age }
还可以charset设置字符集:


    
        
        	
        		/welcome.jsp
        		${name }
        		${age }
        		utf-8
        	
        
    
C.redirectAction跳转

        该转向类型专门用于重定向到Action。当然,Action中的属性值是无法传递到下一个Action中的。不过请注意,redirect在不使用方式时,也是可以重定向到Action的。

核心代码

struts.xml文件


    
        
        	second
        
        
        
        	/welcomeSecond.jsp
        
    
对于重定向到Action,还可以使用来设定转向的Action,并且将参数值传到下一个Action。

核心代码:

struts.xml文件


    
        
        	
        		second
        		${username}
        		${password}
        	
        
        
        
        	/welcomeSecond.jsp
        
    

Dchain跳转

用于将请求转发到Action。Request中的参数可以传递到下一个Action中。

核心代码:

struts.xml文件


    
        
        	second
        
        
        
        	/welcomeSecond.jsp
        
    

你可能感兴趣的:(struts2)