Struts动态方法调用使用通配符-演道网

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错
一、DMI动态方法调用的其中一种改变form表单中action属性的方式已经讲过了。还有两种,一种是改变struts.xml配置文件中action标签中的method属性,来指定执行不同的方法处理不同的业务逻辑;另外一种是使用通配符的方式。改变method属性的方式需要配置多个action,而且这些action定义的绝大部分都是相同的,所以这种定义是相当冗余的。因此,使用通配符就可以在一个action标签中代替多个逻辑处理的Action。

二、示范:(和之前的动态方法调用改变form表单action属性差不多,在struts.xml配置文件上进行了小小的修改。)

要求还是没有变,点击不同的提交按钮提交同一个表单,把不同的业务交给相同的Action处理类去处理。

⒈首先显示一个表单,表单中有两个提交按钮,但分别代表不同的业务。当点击登录时用户登录;当点击注册时用户注册。

⒉用户登录:

⒊用户注册:

具体的代码如下:

⑴、登录注册页面(index.jsp):

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding=”UTF-8″%>

index

        $(function(){
            $(“input:eq(3)”).click(function(){
                /*动态修改表单中的action属性值,实现把注册的请求提交给Action类  */   
                $(“#form”).attr(“action”,”Create”);
            });
           
        });

           

                    姓名:

                    密码:

                                
                   
           

⑵、struts.xml配置文件的代码

<!DOCTYPE struts PUBLIC
    “-//Apache Software Foundation//DTD Struts Configuration 2.3//EN”
    “http://struts.apache.org/dtds/struts-2.3.dtd”>

       
           
           
                    WEB-INF/jsp/userLogin.jsp
                    WEB-INF/jsp/userCreate.jsp
           
           
       
   

   
   

解析:

 1、在这份配置文件中,对action标签中的name属性配置了一个通配符: “*”,后面的method属性值则为: {1}。

 2、意思就是当用户在index.jsp页面点击了登录按钮,那么就会把表单:中的action=”Login”请求传给struts,因为在struts.xml中进行了通配符的配置,所以就把 “*”当成是”Login”,也就是name=”Login”。而后面的method值为:{1}代表的是第一个”*”,也就是metho=”Login”。所以struts会去action.Action类中寻找到Login方法并且调用。如果用户点击了注册按钮,那么也和点击登录按钮是一样流程了。具体可以自己写一个小例子感受一下。

⑶、Action类的代码:

package action;

import com.opensymphony.xwork2.ActionSupport;

public class Action extends ActionSupport {

 
   
    private String name;public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }public String Login(){
       
        System.out.println(“用户登录”);
        return “userLogin”;
    }
   
    public String Create(){
       
        System.out.println(“用户注册”);
        return “userCreate”;
    }
   
}

——————————————————————————–

当然,通配符的使用不仅仅是只有这么简单的一个,还可能是有: “*-*”、”Book_*” 等,这些通配符可以在struts.xml配置文件中action标签的属性中使用,如mthod、class属性,也可以在result标签中使用,如下:

       
        /WEB-INF/jsp/{1}.jsp

在上面的action定义中,action的name是一个*,那么就是可以匹配任意的Action,所有的请求都通过这个action来处理,因为这个action没有class属性,所以使用ActionSupport类来处理,因为没有method属性,所以默认是execute方法并且返回success字符串,而且在result标签中name属性默认是success,所以Action总是直接返回result中指定的jsp资源,因此上面的action定义的含义是:如果用户请求a.action那么就跳转到a.jsp;如果请求b.action就跳转到b.jsp。

推荐阅读:

Struts中异步传送XML和JSON类型的数据 http://www.linuxidc.com/Linux/2013-08/88247.htm

Struts2的入门实例 http://www.linuxidc.com/Linux/2013-05/84618.htm

Struts2学习笔记-Value Stack(值栈)和OGNL表达式  http://www.linuxidc.com/Linux/2015-07/120529.htm 

struts2文件上传(保存为BLOB格式) http://www.linuxidc.com/Linux/2014-06/102905.htm

Struts2的入门实例 http://www.linuxidc.com/Linux/2013-05/84618.htm

Struts2实现ModelDriven接口 http://www.linuxidc.com/Linux/2014-04/99466.htm

遇到的Struts2文件下载乱码问题 http://www.linuxidc.com/Linux/2014-03/98990.htm

Struts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm

Struts2 注解模式的几个知识点 http://www.linuxidc.com/Linux/2013-06/85830.htm

Struts 的详细介绍请点这里
Struts 的下载地址请点这里

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

未经允许不得转载:演道网 » Struts动态方法调用使用通配符-演道网

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册