struts2访问action的三种方式

第一种,循规蹈矩式:

添加用户~
更新用户
删除用户
查询用户
               
			
				/success.jsp
			
			
				/success.jsp
			
			
				/success.jsp
			
			
				/success.jsp
			
		
package com.dimples.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
		//新增一个用户
		public String addUser() {
			System.out.println("新增了一个用户");
			return SUCCESS;
		}
		
		//修改一个用户
		public String updateUser() {
			System.out.println("更新了一个用户");
			return SUCCESS;
		}
		
		//删除一个用户
		public String removeUser() {
			System.out.println("删除了一个用户");
			return SUCCESS;
		}
		
		//查询一个用户
		public String queryUser() {
			System.out.println("查询用户");
			return SUCCESS;
		}
		
}

解析:这种就是jsp中的结尾跟struts.xml中标签的name对上,然后类名方法名都指定好,没什么好说。

第二种:通配符方式(动作类和上面都是一样的,就不再截图了)

添加用户~
更新用户
删除用户
查询用户

	    //这里的{1}代表第一个 * 的值
		/success.jsp
	

解析:可以看到,这种方式先通过*_*将jsp中的结尾匹配到,然后将"_"左右到字符串分别存到第一、第二个 * 中,在后面的class 和 method属性中再用 * 将值取出来,从而巧妙的找到了对应的类和方法。仔细想想,其实这种方式本质就是在jsp的结尾中就把类和方法的信息都写进去了,然后在后面存到 * 里面去,以至于后面可以取的到。这种方法的好处就是当配置太多时,通过合理设计jsp中的结尾和类名及方法名,可以极大减少代码量!

当然,如果只需要往 * 里面存方法名而不需要存类名,那么一个*就够了,比如下面这样:

添加用户~
更新用户
删除用户
查询用户 

	    //这里的{1}代表第一个 * 的值
		/success.jsp
	

这种情况就是类名已经确定了,写死了。

第三种:动态方法调用

添加用户~
更新用户
删除用户
查询用户



	
		/success.jsp
	

解析:首先用这种方式一定要先配置一下 struts.enable.DynamicMethodInvocation = true.这种方式要点其实也在于jsp的结尾,它在jsp结尾就把方法名写上了,然后类名在struts.xml中写好了,通过jsp结尾中叹号前面的字符找到对应action,然后类名和方法名都知道了,还怕调不到方法?







你可能感兴趣的:(struts2)