程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> struts之動態方法調用改變表單action屬性,strutsaction

struts之動態方法調用改變表單action屬性,strutsaction

編輯:JAVA綜合教程

struts之動態方法調用改變表單action屬性,strutsaction


 

一、動態方法調用(DMI:Dynamic Method Invocation)

   ⒈struts2中同樣提供了這個包含多個邏輯業處理的Action,這樣就可以在一個Action中進行多個業務邏輯處理。例如:當用戶通過不同的提交按鈕來提交同一個表單的時候,系統通過不同的方法來處理用戶不同的請求,這時候就需要讓同一個Action中包含有多個控制處理的邏輯。

   ⒉動態方法調用有:

      ①、改變struts.xml中的action中的method屬性。

      ②、改變form表單中的action屬性來改變不同提交的請求邏輯。

      ③、使用通配符。

 

二、簡單示例(改變form表單中的action屬性):

   ①、首先顯示一個表單,表單中有兩個提交按鈕,但分別代表不同的業務。當點擊登錄時用戶登錄;當點擊注冊時用戶注冊。

   

 

   ②、用戶登錄:

   

 

   ③、用戶注冊:  

   

   詳細代碼(本例子建立在struts2的基礎上的簡單例子,所以struts2的搭建在這裡不詳細演示,如果對struts2有疑問請求看:http://www.cnblogs.com/demoMeng/p/5841976.html):

    ①、登錄注冊的頁面(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="登錄">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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";
    }
    
}

    


 

   本例子只是簡單的DMI中的一種方式,沒有加入過多的業務邏輯處理如:用戶登錄是否正確並且符合條件。只是一個簡單示例,具體實戰中需要使用到的業務需要進一步修改分析和完善,謝謝浏覽。

     

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved