パラメーターの通過とは、プログラムのバックグラウンドにパラメーターを転送することを意味します。背景は何らかの処理を行い、コンテンツをデータベースに保存する場合があります。
1つずつ説明したように、パラメーターを渡すには多くの方法があります。
1.実際の直接パラメーターメソッド
次のindex.jspファイルがあります
コードコピーは次のとおりです。<?xmlバージョン= "1.0" encoding = "gb18030"?>
<%@ページ言語= "java" contentType = "text/html; charset = gb18030"
PageEncoding = "gb18030"%>
<%
string path = request.getContextPath();
string basepath = request.getscheme()+"://"+request.getServername()+":"+request.getServerport()+path+"/";
%>
<!doctype html public " - // w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<Meta http-equiv = "content-type" content = "text /html; charset = gb18030" />
<base href = "<%= basepath%>"/>
<Title>タイトルを挿入して</title>
</head>
<body>
アクション属性を使用してパラメーターを受信します<a href = "user/user!add?name = a&age = 8">ユーザー</a>
</body>
</html>
<a> </a>の場合、プログラムに2つのパラメーターを渡します。1つは名前、もう1つは年齢です。 struts.xmlの構成は次のとおりです。
コードコードを次のようにコピーします
<!Doctypeはパブリックを支持します
" - // Apache Software Foundation // DTD Struts Configuration 2.0 // En"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<Struts>
<constant name = "struts.devmode" value = "true" />
<パッケージ名= "user" extends = "struts-default" namespace = "/user">
<アクションname = "user">
<sults> /user_add_success.jsp </result>
</action>
</package>
</struts>
現時点でユーザーアクセスをどのように記述する必要がありますか?例は次のとおりです。
コードコピーは次のとおりです。パッケージcom.bjsxt.struts2.user.action;
com.opensymphony.xwork2.actionsupportをインポートします。
Public ClassユーザーアクションはActionSupportを拡張します{
プライベート文字列名;
プライベートインクエイジ;
public string add(){
System.out.println( "name =" + name);
System.out.println( "age =" + age);
成功を返す;
}
public string getName(){
返品名;
}
public void setName(string name){
this.name = name;
}
public int getage(){
戻り年齢;
}
public void Setage(int age){
this.age = age;
}
}
非常に単純で、2つのプロパティを定義します。注:これらの2つのプロパティのセットと取得方法を作成する必要があり、日食の迅速な生成方法が使用されます。これは非常に簡単です。このようにして、上記のプログラムは、実行されたときに目的の結果を印刷します
name = aおよびage = 8。
説明は次のとおりです。まず、Struts2はパラメーターを自動的に渡し、このプロセスに参加する必要はありません。第二に、Strutsはパラメーターを渡して、名前や年齢の属性ではなく、メソッドを設定および取得します。つまり、ユーザー名などの他の名前にその名前を変更しますが、メソッドはまだsetNameとgetNameである場合、関数全体の実装に違いはありません。第三に、最も重要な点は、多くの属性がある場合、多くのセットと取得方法が必要であることです。これは非常に不便であるため、次の方法が拡張されています。
2。アクションクラスオブジェクトメソッドを追加します
この時点で、1のプロパティはすべてユーザーなどのクラスに分類されます
コードコピーは次のとおりです。パッケージcom.bjsxt.struts2.user.model;
パブリッククラスユーザー{
プライベート文字列名;
プライベートインクエイジ;
public string getName(){
返品名;
}
public void setName(string name){
this.name = name;
}
public int getage(){
戻り年齢;
}
public void Setage(int age){
this.age = age;
}
}
これにより、アクションクラスの書き込みがはるかに簡単になります
コードコピーは次のとおりです。パッケージcom.bjsxt.struts2.user.action;
com.bjsxt.struts2.user.model.userをインポートします。
com.opensymphony.xwork2.actionsupportをインポートします。
Public ClassユーザーアクションはActionSupportを拡張します{
プライベートユーザーユーザー;
public string add(){
System.out.println( "name =" + user.getName());
System.out.println( "age =" + user.getage());
成功を返す;
}
パブリックユーザーgetUser(){
ユーザーを返します。
}
public void setuser(ユーザーユーザー){
this.user = user;
}
}
注:現時点では、ユーザーオブジェクトを手動で生成する必要はありません。このプロセスは、struts2によって自動的に完了します。
そして、この時点でURLを変更する必要があります。つまり、インデックスの<a> </a>タグが変更されます。
コードコピーは次のとおりです。<?xmlバージョン= "1.0" encoding = "gb18030"?>
<%@ページ言語= "java" contentType = "text/html; charset = gb18030"
PageEncoding = "gb18030"%>
<%
string path = request.getContextPath();
string basepath = request.getscheme()+"://"+request.getServername()+":"+request.getServerport()+path+"/";
%>
<!doctype html public " - // w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<Meta http-equiv = "content-type" content = "text /html; charset = gb18030" />
<base href = "<%= basepath%>"/>
<Title>タイトルを挿入して</title>
</head>
<body>
ドメインモデルを使用してパラメーターを受信します<a href = "user/user!add?user.name = a&user.age = 8"> add user </a>
</body>
</html>
上記の18行のセクションに変更します。
上記では、Struts2パラメーターの渡された2つの方法を説明します。2番目の方法は、DomainModel、ドメインモデルと呼ばれます。つまり、属性を保存する新しいクラスを作成します。
モデル駆動型のモデル駆動型と呼ばれる別の方法については、以下に説明します。
これは2番目の方法と非常によく似ており、他の方法は同じですが、アクションとアクセスの間に違いがあることを除いて同じです。その行動は次のとおりです。
コードコピーは次のとおりです。パッケージcom.bjsxt.struts2.user.action;
com.bjsxt.struts2.user.model.userをインポートします。
com.opensymphony.xwork2.actionsupportをインポートします。
com.opensymphony.xwork2.modeldrivenをインポートします。
パブリッククラスのユーザーアクティブ拡張actionSupport実装モデルドライブ<ユーザー> {
プライベートユーザー= new user();
public string add(){
System.out.println( "name =" + user.getName());
System.out.println( "age =" + user.getage());
成功を返す;
}
@オーバーライド
パブリックユーザーgetModel(){
ユーザーを返します。
}
}
これから、モデル駆動型のインターフェイスを実装し、ジェネリックテクノロジーを採用していることがわかります。このようにして、Struts2はオブジェクトを自動的にインスタンス化しないため、手動でのみ生成することができます。モデル駆動型インターフェイスのgetModel()メソッドをオーバーライドし、その機能はクラスオブジェクトを返すことです。
そのアクセスは2番目とは異なります(最初の方法のように):
コードコードを次のようにコピーします。ModelDrivenを使用してパラメーターを受信します<a href = "user/user!add?name = a&age = 8">ユーザー</a>
user.nameメソッドを使用していないため、オブジェクトを新しい新しいものにする必要があります。
この方法の基本的なイデオロギープロセスは次のとおりです。最初に、アクションはURLを解析し、パラメーターを取得してからアクションを入力します。このアクションがモデル駆動型インターフェイスを実装することがわかります。この時点で、モデル駆動型インターフェイスのgetModelメソッドが呼び出され、クラスオブジェクトを取得し、このクラスのセットと取得メソッドがパラメーターを渡すために呼び出されます。
この方法は、struts2、m ---モデル、v ---ビュー、c ---コントローラーのMVCのアイデアを反映していますが、この方法はめったに使用されず、最も使用する2番目の方法は上記です。
上記は、Struts2のパラメーター配信方法のコンテンツ全体です。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。