このペーパーでは、主に、Struts2フレームワークのラジオボタンの詳細な説明と、列挙タイプの変換の関連例を次のように研究しています。
Struts2タグを使用して、最初にタグライブラリを導入する必要があることは間違いありません。
<%@ taglib prefix = "s" uri = "/struts-tags"%>
ラジオラジオボックスのリストの値はマップコレクションであると仮定します。
<s:radio list = "#{'man': 'male'、 'women': 'femaly'}" name = "gender" listkey = "key" listbalue = "value" value = "'man'" theme = "simple"/>注記:
1。名前属性は、HTMLコードに対応する名前属性でもあります。
2。ListKey属性は、HTMLコードの値属性に対応します。
3. ListValue属性は、HTMLコードラベル属性に対応します。
4.値属性は次のとおりです。値の値がセットの値と一致する場合、選択されます(値の値が文字列である場合、単一の引用符を追加する必要があります)。
実行後、図に示すように、HTMLコードに解析されます。
ケースを通してそれを説明しましょう:
ユーザーを変更するときは、変更インターフェイスにジャンプして、変更インターフェイスでユーザーの性別をエコーします。ここでは、列挙を使用して性別を表します。
最初のユーザーインターフェイス:
プロジェクト構造:
ユーザーインターフェイス:
<body> <form action = "enumaction_test.action" method = "post">性別を選択してください:<s:ラジオリスト= "#{'man': 'male'、 'women': 'name'}" name '} "ジェンダー" listkey = "key" key "que" qualue = "value" value = "' man" 'man' = "simple"バックグラウンドアクションコード:
パブリッククラスの列挙{/*性別を定義し、デフォルトは男性です*/私的性別性別= gender.man; public gender getgender(){return gender;} public void setgender(this.gender = gender;}/*test method*/public string test(){return "success";}}}}注: Enumタイプを使用しているため、タイプ変換を実行する必要があります(特定の変換方法が前のブログで言及されました)。
タイプ変換クラスコードを列挙します:
パブリッククラスenumtypeconverter extends defaulttypeconverter {@suppresswarnings( "rawTypes")@override public object convertvalue(map <string、object> context、object value、class totype){/*前から逆に、文字列からenumに変換* params =(string [])value; return gender.valueof(params [0]);} else if(totype == string.class){/*はバックグラウンドアクションから前景に渡されます。グローバルタイプ変換のプロパティファイルを定義します。
com.lixue.bean.gender = com.lixue.converter.enumtypeconverter
ジャンプ後の結果ページ(ユーザー変更インターフェイス):
<body> your gender:<s:radio list = "#{'man': 'mal'、 'women': 'femal'}" name = "gender" listkey = "key" que "balue =" value "value =" simple "/> </body> </body>注:修正インターフェイスで現在選択されている性別をエコーする方法は?重要なのは、値値を見ることです。上記のコードに性別を書きました。実際、この性別はアクションで定義されているプロパティです。前の記事でOGNLについて話したとき、アクションのプロパティは値スタックに保存されると述べました。値スタックのプロパティを取得し、#NamesPaceの形式で取得することなく、属性名を介して直接取得できます。取得した後、以前のマップコレクションと一致させて、チェックするかどうかを判断します。
1.一部の人々は質問をしているかもしれません、なぜListKeyをキーに直接書くことができ、ListValueを値に直接書くことができます。
回答:struts2が<s:radio>タグのリストコレクションを解析すると、イテレーターを使用します。イテレータの関数は、ループが値を取得するたびに、値スタックのスタックの上部に結果(エントリオブジェクトのたびに)を保存することです。したがって、OGNL式を使用する場合、オブジェクトの属性(エントリの属性名はキーと値)を使用して値を取得できます。 #namespaceを使用する必要はありません。 OGNL式を理解していない学生は、前の記事を読むことができます。
2。タグを作成するときは、常に属性テーマを書くことがわかります。この属性の機能は、タグを解析するときにStruts2が不要なコードを生成することを避けることですが、毎回それを記述する必要があります。詐欺ではありませんか?実際、struts.xmlファイルで定数を構成して、効果を実現できます。
<! - struts2タグテーマスタイル - > <constant name = "struts.ui.theme" value = "simple" />
これらのストラットフレームワークの学習は、雲と霧を通して青い空を見るようなものです。 Javaフレームワーク、春、Mybatisなどをより明確に理解しており、すべてのものがつながっています。 。 。
上記は、struts2無線ボタンの詳細な説明と列挙タイプの変換コードの例に関するこの記事のすべての内容です。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!