1. DMIダイナミックメソッド呼び出しのフォームのアクション属性を変更する方法の1つが説明されています。他に2つのタイプがあります。 1つは、struts.xml構成ファイルのアクションタグのメソッド属性を変更して、さまざまなビジネスロジックを処理するさまざまなメソッドの実行を指定することです。もう1つは、ワイルドカードを使用することです。メソッド属性を変更するには、複数のアクションを構成する必要があり、これらのアクションのほとんどが同じで定義されるため、この定義は非常に冗長です。したがって、ワイルドカードを使用すると、複数の論理的に処理されたアクションを1つのアクションタグに置き換えることができます。
2。デモンストレーション:(フォームフォームアクション属性を変更する以前の動的メソッド呼び出しに似ており、struts.xml構成ファイルに小さな変更が加えられました。)
要件はまだ変更されていません。別の[提出]ボタンをクリックして同じフォームを送信し、処理のために同じアクション処理クラスに異なるサービスを引き渡します。
formフォームを表示すると、フォームに2つの送信ボタンがありますが、それらは異なるビジネスを表しています。 [ログイン]をクリックすると、ユーザーがログインします。 [登録]にクリックすると、ユーザーがログインします。
⒉ユーザーログイン:
ユーザー登録:
特定のコードは次のとおりです。
⑴。登録ページ(index.jsp)にログインします。
<%@ page Language = "Java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> < "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <src =" js/jquery-1.7.2.js "> type = "text/javascript"> $(function(){$( "input:eq(3)")。クリック(function(){/*アクション属性の値をフォームの[アクション属性]属性の値を動的に変更して、アクションクラスに登録要求を送信して、 "#form")。 id = "form"> name:<入力タイプ= "text" name = "name"/> <br> <br>パスワード:<入力タイプ= "パスワード" name = "password"/> <br> <br> <入力タイプ= "submit" value = "login"> <入力タイプ= ⑵。 struts.xml構成ファイルのコード
<?xml version = "1.0" encoding = "utf-8"?> <!doctype struts public " - // apacheソフトウェア財団// dtd struts構成name = "*" method = "{1}"> <result name = "userlogin"> web-inf/jsp/userlogin.jsp </result> <result name = "usercreate"> web-inf/jsp/usercreate.jsp </result> </action> </package> </struts>分析:
1。この構成ファイルでは、アクションタグの名前属性に対してワイルドカード文字が構成され、その後のメソッド属性の値は{1}です。
2。これは、ユーザーがindex.jspページのログインボタンをクリックすると、action = "login" request in form:strutsに渡されることを意味します。ワイルドカード構成はstruts.xmlで実行されるため、「*」は「ログイン」、つまりname = "login"と見なされます。後続のメソッド値は次のとおりです。{1}は、Method = "Login"である最初の "*"を表します。したがって、Strutsはアクションクラスにログインメソッドを見つけて呼び出します。ユーザーが登録ボタンをクリックした場合、プロセスはログインボタンをクリックするのと同じです。あなたはそれを体験するために小さな例を書くことができます。
⑶。アクションクラス:
パッケージアクション;インポートcom.opensymphony.xwork2.actionsupport; public class action extends actionsupport {private string name; public name getname(){return name;} public void setname(this.name = name;} public string login(){system.out.out.println( "userlogin"); "userlogin"); create(){system.out.println( "ユーザー登録"); return "usercreate";}}}もちろん、ワイルドカード文字の使用はそれほど単純なだけでなく、「* - *」、「book_*」などを含むこともあります。これらのワイルドカード文字は、mthodやクラス属性などのstruts.xml構成ファイルのアクションタグのプロパティで使用できます。
<! - 一般的なアクションタグを定義します - > <アクションname = "*"> <! - 式を使用して結果タグを定義します - > <result>/web-inf/jsp/{1} .jsp </result> </action>上記のアクション定義では、アクションの名前はA *であるため、あらゆるアクションと一致させることができます。すべてのリクエストは、このアクションを通じて処理されます。このアクションにはクラス属性がないため、ActionSupportクラスはそれを処理するために使用されます。メソッド属性がないため、デフォルトは実行メソッドであり、成功文字列を返します。さらに、結果タグの名前属性はデフォルトで成功するため、アクションは常に結果で指定されたJSPリソースを直接返します。したがって、上記のアクション定義の意味は次のとおりです。ユーザーがa.actionを要求する場合、A.JSPにジャンプします。 b.actionが要求された場合、それはb.jspにジャンプします。
上記は、編集者が紹介したストラットの動的なメソッドコールです。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!