加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Struts2之动态方法调用革新表单action属性

发布时间:2021-11-18 16:39:20 所属栏目:教程 来源:互联网
导读:一、动态方法调用(DMI:Dynamic Method Invocation) ⒈struts2中同样提供了这个包含多个逻辑业处理的Action,这样就可以在一个Action中进行多个业务逻辑处理。例如:当用户通过不同的提交按钮来提交同一个表单的时候,系统通过不同的方法来处理用户不同的

一、动态方法调用(DMI:Dynamic Method Invocation)
 
⒈struts2中同样提供了这个包含多个逻辑业处理的Action,这样就可以在一个Action中进行多个业务逻辑处理。例如:当用户通过不同的提交按钮来提交同一个表单的时候,系统通过不同的方法来处理用户不同的请求,这时候就需要让同一个Action中包含有多个控制处理的逻辑。
 
⒉动态方法调用有:
 
①、改变struts.xml中的action中的method属性。
 
②、改变form表单中的action属性来改变不同提交的请求逻辑。
 
③、使用通配符。
 
二、简单示例(改变form表单中的action属性):
 
①、首先显示一个表单,表单中有两个提交按钮,但分别代表不同的业务。当点击登录时用户登录;当点击注册时用户注册。
 
 
 
②、用户登录:
 
 
 
③、用户注册:  
 
 
 
详细代码(本例子建立在struts2的基础上的简单例子,所以struts2的搭建在这里不详细演示,如果对struts2有疑问请求看:http://www.linuxidc.com/Linux/2016-09/134983.htm):
 
 ①、登录注册的页面(index.jsp):DMI中改变form表单中action属性的方式的就下面的脚本段是关键,其他的struts.xml文件只要进行相关的配置即可。
 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 
<script src="js/jquery-1.7.2.js"></script>
<title>index</title>
 
<script type="text/javascript">
        $(function(){
            $("input:eq(3)").click(function(){
              //获取表单并且改变action的属性值
                $("#form").attr("action","userCreate");
               
            });
        });
 
</script>
 
</head>
<body>
            <form action="userLogin" method="post" id="form">
                    姓名:<input type="text" name="name" /><br><br>
                    密码:<input type="password" name="password" /><br><br>
                    <input type="submit" value="登录">            
                    <input type="submit" value="注册">
            </form>
</body>
</html>
 
 ②、struts.xml:配置文件
 
<struts>
        <package name="myP" extends="struts-default">
            <action name="in" class="action.Action" method="go">
                    <result name="login">WEB-INF/jsp/index.jsp</result>
            </action>
            <action name="userLogin" class="action.Action" method="test">
                    <result name="userLogin">WEB-INF/jsp/userLogin.jsp</result>
            </action>
            <action name="userCreate" class="action.Action" method="create">
                    <result name="userCreate">WEB-INF/jsp/userCreate.jsp</result>
            </action>
        </package>
   
</struts>
 
③、Action类:
 
package action;
 
import com.opensymphony.xwork2.ActionSupport;
 
public class Action extends ActionSupport {
 
 
   
    private String name;
    private String password;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
   
   
    public String go(){
        System.out.println("去登录注册页面!!");
        return "login";
    }
   
    public String test(){
       
        System.out.println("用户登录");
        return "userLogin";
    }
   
    public String create(){
       
        System.out.println("用户注册");
        return "userCreate";
    }
   
}

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读