前の記事では、Spring Learning Notes 1のIOCの詳細な説明を紹介し、アノテーションとJavaコードを可能な限り使用しようとしました。次に、この記事では、Spring Learning Notes 2のフォームデータ検証とファイルアップロード例コードの導入に焦点を当てています。詳細については、この記事を参照してください!
1。フォームデータ検証
登録する場合、ユーザーはアカウント、パスワード、電子メール、携帯電話番号に記入する必要があります。これらは必要であり、特定の形式を満たす必要があります。たとえば、アカウントは32桁未満である必要があり、電子メールは電子メール形式を満たす必要があり、携帯電話番号は11桁の番号などである必要があります。登録時に確認情報を使用するか、検証専用のツールクラスを作成できます。 SpringMVCでの簡単な注釈を介してフォームデータ検証を実装する方法を見てみましょう。
javax.validation.constraintsパッケージでは、複数の注釈が定義されています。例えば:
@notnull:注釈付き要素の値はnullであってはなりません。注:フォームのデータを入力しない場合、それがnullであることを意味するのではなく、空の文字列です。
@size:注釈付き要素は、文字列、コレクション、または配列でなければならず、長さは与えられた範囲を満たす必要があります。
@past:注釈付き要素の値は過去の時間でなければなりません。
@digits:注釈付き要素は数字である必要があり、その値には指定された数字数が必要です。
@Pattern:注釈付き要素の値は、指定された正規表現と一致する必要があります
さらに、より多くの注釈がorg.hibernate.validator.constraintsパッケージの下で定義されています。例えば:
@email:メールフォーマットを一致させます。
@url:URL形式を一致させます。
SpringMVCで使用する方法を見てみましょう。
1.最初に必要なものをpom.xmlファイルにロードします
<Dependency> groupId> javax.Validation </groupId> <artifactid> vilation-api </artifactid> <bersion> 1.1.0.final </version> </dependency> <dependency> <groupid> org.hibernate </groupid> <artifactid> depantator </artifactid> </> </> </> </> </>> <
javax.validationは検証APIのみを定義し、org.hibernate.validatorなどのAPIの実装を追加する必要があることに注意してください。そうしないと、エラーが報告されます。
2。クラスのプロパティに注釈を追加し、ユーザーを撮影します。
パブリッククラスのユーザーはserializable {@size(min = 32、max = 32、message = "uuidは32ビット文字列である必要があります")private string id; @size(min = 1、max = 32、 "accound lengthが1-32ビットの間である必要があります)private string username; @notempty(@noty(messagn can cange cange be be be be vis be be vis be vis be be be be vised) empty ")@email(message =" email nable empty ")プライベート文字列メール; @size(min = 11、max = 11、message ="携帯電話番号の長さは11桁です ")プライベートストリング携帯電話;}メッセージ:フォームデータ検証が失敗した場合、エラーメッセージを表示できます。
3. usercontrollerに検証関数を適用し、@valid annotationを追加します。
usercontroller.javaを例として取ります:
@controller@requestmapping( "/user")public class usercontroller {private userservice userservice; @autowiredpublic usercontroller(userserservice = userservice;}@requestmapping(value = "/register"、method = requestmethod.post)public string process users(@valid users(/validユーザー)検証関数は(errors.haserrors()){//フォーム検証が失敗した場合、登録ページに "register";} return "register";} if(usid.setid(uuid.randomuid(uuid.randomuid)(uuid.randomuid)。 date()。gettime()); userservice.adduser(user); redirect:/user/" + user.getusername();}}} 4。JSPファイルを書き、ページを表示し、レジスタを使用して例として取得します。
<%@ page contentType = "text/html; charset = utf-8"言語= "java"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix = "sf" uri = "http://www.springframework.org/tags/form"%> <%@ page session = "false"%> <html lang = "en" en "> <head> <title> register> <link rel =" styleSheet "type" type = "text/css" >/head> <body> <sf:form method = "post" action = "/Register/user/Register" commandName = "user"> <% - フォームデータ検証が失敗した場合、エラーメッセージが表示されます - %> <sf:エラーpath = "*" element = "div" cssclass = "errors"/> <table " </td> <td> <sf:入力パス= "username" csserrorclass = "errors"/> </td> <tr> <td>パスワード:</td> <td> <sf:パスワード= "パスワード" csserrorclass = "errors"/>> </td> </td> <td> </td> path = "email" csserrorclass = "errors"/> </td> </tr> <tr> <td> folphone:</td> <td> <sf:input path = "携帯電話" csserrorclass = "errors"/>> </td> </tr> </<br/> value = "Register"/> </sf:form> </body> </html>
最終的な効果は次のとおりです。
2。ファイルアップロード
春には、ファイルのアップロードはシンプルで、3つのステップのみが必要です。
1. inppartCherServletが構成されている場合、AbstractAnnotationConfigDisPatcherServletInitializerを継承する場合は、MultiPartの特定の詳細を構成するためにカスタマイズ化する方法()メソッドをオーバーロードします。
@OverrideRideProtected void customizeregistration(servletregistration.dynamic登録){//アップロードされたファイルサイズを2MB以下に制限します。リクエスト全体は4Mを超えず、すべてのアップロードされたファイルはディスク登録に書き込まなければなりません。 0));} 2。マルチパートパーサーを構成します。
// MultiPart Resolver @BeanPublic MultiPartresolver MultiPartresolver()Throws IOException {return exterservletmultipartresolver();}を構成する3。プロセスマルチパートリクエスト。ユーザーがアップロードしたファイルなどの情報については、BYTE []配列を使用してそれを表すことができますが、Springが提供するMultiPartFileインターフェイスを推奨することをお勧めします。ファイル名、ファイルサイズ、ファイルの種類など、より多くの機能を提供します。
@RequestMapping(value = "/{username}"、method = requestmethod.post)public string showuserinfo(@requestpart( "icon")multipartfileアイコン)throws ioexception {icon.transferto(new file( "/users/pingping/pinging/spring/spring/registjed/scr/" + src/" icon.getoriginalfilename())); "user";}転送(ファイルDEST)メソッド:システムにファイルを書き込みます。
指定されたファイルディレクトリ内のファイルが正常にアップロードされているかどうかを確認するために、ページテストを記述します。
<form method = "post" enctype = "multipart/form-data"> <label> avatar image?</label> <入力タイプ= "file" Icon = "アイコン" accept = "image/jpeg、image/png" "value =" select file "/> <ボタンタイプ=" submit> form> </>>>>>
1。参考文献:春の実践実践(第4版)。
2。Githubアドレス:https://github.com/everseeker0307/register。
上記は、編集者が紹介したSpring Learning Notesの例のデータ検証とファイルアップロードの例です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!