製品部品を追加する原則は、製品カテゴリを追加することと同じです。記事を参照してください:製品カテゴリを追加および更新しますが、製品カテゴリよりも複雑です。製品には多くの属性があるため、対応するデータベースにはより多くのフィールドがあります。写真をアップロードする製品を追加するオプションもあります。この小さなコンテンツは、次の記事で別々に説明されます。これには、Struts2がファイルアップロード機能を実装する知識ポイントが含まれるためです。それ以上は言いません。次に、製品部品を追加するためのコードの改善を開始します。
1.製品を追加します
1.1製品のUI実装の追加<br />最初にquery.jspに製品部品を追加するためのコードを完成させます:
次に、save.jspの特定の実装を見てみましょう。
<%@ page Language = "Java" Import = "Java.util。*" PageEncoding = "UTF-8"%> <!doctype HTML public " - // w3c // dtd html 4.01 transitional // en"> <html> <head> <%file = "/public/head.jspf"% "マージン:10px; } </style> <script type = "text/javascript"> $(function(){//カスタム検証メソッドは新しいfunction $ .extend($。fn.validatebox.defaults.rulesto balidatebox.defaults.rulesを登録します。形式:{// falseを返す場合、検証はvalibator:function(value、param){// var.lastindexof( '。') + 1)を取得しますarr.length; json形式とそれをurlに送信します: 'category_query.action'、valuefield: 'id'、textfield: 'type'、//ドロップダウンリストはすべての製品カテゴリを表示しますパネルハイト: 'auto'、// adaptive height panelwidth:120、//ドロップダウンリストはwidthです:2つのコンポーネントの構成、//編集//コンボボックス継承コンボ継承validateBoxを継承するため、ここで確認することを直接設定できます。 $( "input [name = name]") $( "input [name = rice]") $( "input [name = 'fileimage.upload']") $( "textarea [name = areg]") $( "textarea [name = xremark]")。validatebox({required:true、missingmessage: '製品の簡単な説明を入力してください'}); $( "textarea [name = xremark]")。validatebox({required:true、missingmessage: '製品の簡単な説明を入力してください'}); //検証$( "#ff")。form( "disableValidation"); //ボタンのイベント$を登録します( "#subming")成功(){//現在のウィンドウの親を閉じます。$( "close"); // events $( "#reset") }); </script> </head> <body> <form id = "ff" method = "post" enctype = "multipart/form-data"> <div> <label>製品名:</label> <入力タイプ= "テキスト" name = "name"/> </div> <div> <abrow>製品価格:</ラベル> <入力= "/div> </div> <> </fiv> <> </fiv> </div> type = "file" name = "fileimage.upload"/> </div> <div> <ableabor> category:</label> <input id = "cc" name = "category.id"/> </div> <div> <abour>推奨事項:</label>推奨:</label>推奨>推奨:<入力タイプ= "Radio" type = "Radio" name = "commend" value = "false"/>> </div> <div> <label>それは有効です:</label>リスト:<入力タイプ= "ラジオ" name = "open" checked "value =" true "/> cols = "40" rows = "4"> </textarea> </div> <div> <label>詳細説明:</label> <textarea name = "xremark" cols = "40" rows = "8"> </div> <div> <a id = "submit" href = " </div> </form> </body> </html>主に上記のJSコードのカスタムメソッドパーツを見てみましょう。これは、主にアップロードされた画像の検証を定義しています。特定の分析は次のとおりです。
次に、画像検証セクションでカスタムメソッドを使用できます。
1.2製品の追加の背景実装
@Controller( "Productaction")@scope( "Prototype")Public Class Productaction Extends BaseAction <product> {//他のコードを省略... public void Save()Throws Exception {//アップロードされた写真を処理すると、次のブログはStruts2ファイルModel.setdate(新しい日付())のアップロードを具体的に分析します。 //現在の時間を設定します。フロントデスクがタイムフィールドを通過しないため、ここで自分で設定します。 System.out.println(モデル); //製品情報ストレージprocustrivice.save(model); }} 2。製品を更新します
2.1製品のUI実装を更新します
まず、query.jspの更新された製品部品のコードを見てください:
次に、update.jspのコンテンツを見てみましょう。
<%@ page Language = "Java" Import = "Java.util。*" PageEncoding = "UTF-8"%> <!doctype HTML public " - // w3c // dtd html 4.01 transitional // en"> <html> <head> <%file = "/public/head.jspf"% "マージン:5px; } </style> <script type = "text/javascript"> $(function(){// datagrid object var dg = parent。$( "iframe [title = 'product management']")。処理されたデータをこの側に戻して表示するため、背景はデータをJSON形式にパッケージ化してURLに送信する必要があります: 'category_query.action'、valuefield: 'id'、 'type'、//ドロップダウンリストは、製品のカテゴリ名パネルを示しています。同時に編集可能な幅://ドロップダウンボックスは編集を許可しません//コンボ継承は検証ボックスを継承するので、ここで必要なものを設定できます:「カテゴリを選択してください」。 dg.datagrid( "getSelections"); //Load the corresponding data field of the row you get into the form to echo $("#ff").form('load',{ id:rows[0].id, name:rows[0].name, price:rows[0].price, remark:rows[0].remark, xremark:rows[0].xremark, comment:rows[0].commend, open:rows [0] .open、 'category.id':rows [0] .category.id // easyuiはaccount.idポイント操作をサポートしていないため、引用符を追加する必要があります}); //データをエコーした後、検証function $( "input [name = name]" ")を設定します。 $( "input [name = rice]") $( "input [name = 'fileimage.upload']") $( "textarea [name = areg]") $( "textarea [name = xremark]")。validatebox({required:true、missingmessage: '製品の簡単な説明を入力してください'}); $( "textarea [name = xremark]")。validatebox({required:true、missingmessage: '製品の簡単な説明を入力してください'}); //検証$( "#ff")。form( "disableValidation"); //ボタンの登録ボタンのイベント$( "#btn") 'Product_update. // function:functionの更新方法を送信する場合、現在のウィンドウを閉じて$( "#win")。 }); </script> </head> <body> <form id = "ff" method = "post" enctype = "multipart/form-data"> <div> <label for = "name"> product name:</label> <入力タイプ= "テキスト" name = "name =" name " </label>更新画像:</label> <入力タイプ= "ファイル" name = "fileimage.upload"/> </div> <div> <label for = "account">製品カテゴリ:</label> <! - リモートロード管理者データ - > <入力ID = "cc name =" category.id "/>> </div> <"> label> < cols = "40" rows = "4"> </textarea> </div> <div> <label for = "xremark">詳細説明:</label> <textarea name = "xremark" cols = "40" rows = "8"> </textarea> </div> <div> <label = "" </label> "" value = "true" /> no:<入力タイプ= "Radio" name = "commend" value = "false" /> < /div> <div> <label for = "open">有効な製品:< /label>リスト:<入力タイプ= "ラジオ" name = "open" value = "true" />>削除:<入力タイプ= "ラジオ" name "open" data-options = "iconcls: 'icon-edit'"> update </a> <入力型= "hidden" name = "id"/> </div> `</form> </body> </html>更新部品は、基本的に製品カテゴリの更新と同じです。二度と繰り返しません。以下は、バックグラウンドアップデートパーツの実装です。
2.2更新された製品バックグラウンドの実装
@Controller( "Productaction")@scope( "Prototype")Public class Productaction Extends BaseAction <//他のコードを省略... public void update()Throws Exception {//アップロードされた写真を処理し、次のブログはStruts2ファイルモデルモデルのモデル.setdate(新しい日付())のアップロードを具体的に分析します。 //現在の時間を設定します。フロントデスクがタイムフィールドを通過しないため、ここで自分で設定します。 System.out.println(モデル); // ProductService.update(モデル)を更新します。 }}製品カテゴリの更新と比較して、もう1つの画像アップロード操作はあります。バックグラウンドでアップロードされた画像を処理する必要があります。次の記事では、Struts2のファイルアップロード関数を詳細に分析します。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。