天天看點

spring mvc:練習:表單驗證(javaConfig配置和注解)

使用Spring表單标簽, 表單驗證使用 JSR303 的驗證注解,hibernate-validators,提供了使用MessageSource和通路靜态資源(如CSS,JavaScript,圖檔)國際化支援我們的視圖,使用ResourceHandlerRegistry,全部采用基于注解的配置。

  

插件:

更新pom.xml,包括所需的依賴關系

首先要注意這裡是 maven-war-plugin 插件聲明。由于我們使用的是全注解配置,我們甚至不包括在 web.xml 中,是以我們需要配置這個插件,以避免Maven建構war包失敗。在驗證部分 validation-api 代表規範, 而hibernate-validator是本規範的一個實作。hibernate-validator還提供了一些它自己的注解(@Email,@NotEmpty等)不屬于規範的一部分。

建立POJO/域對象

Student學生資訊類

添加控制器

@Valid要求spring來驗證相關的對象(學生)。 BindingResult包含此驗證,并可能在此驗證過程中發生(産生)任何錯誤的結果。請注意,BindingResult一定要在之後立即生效對象,否則spring将無法驗證并且将一個異常抛出。

添加配置類

@Configuration訓示該類包含注解為@Bean生産Bean管理是由Spring容器的一個或多個 bean 的方法。@EnableWebMvc 等效于 mvc:annotation-driven 在XML檔案中。它能夠為使用@RequestMapping 向特定的方法傳入的請求映射@Controller-annotated類。 @ComponentScan 等效于  context:component-scan base-package="..." 提供具有到哪裡查找管理Spring beans/類。

方法 ViewResolver 配置一個 ViewResolver 用來找出真正的視圖。方法 addResourceHandlers 配置 ResourceHandler 靜态資源。CSS, JavaScript, images 等都是靜态的資源在你的頁面裡。上面的配置表示,所有的資源請求開始/static/,将從webapps檔案夾下提供/static/。在這個例子中,我們把所有的css檔案放在 Web應用程式的 /static/css 目錄中。注意,此方法在 WebMvcConfigurerAdapter 中定義,是以我們需要擴充這個類來注冊我們的靜态資源覆寫此方法。

方法為 messageSource 配置消息包,以支援[國際化]消息屬性檔案。請注意方法 baseName 提供的參數(消息)。Spring 将搜尋應用程式類路徑中一個名為messages.properties檔案。讓我們添加的檔案:

src/main/resources/messages.properties

請注意,上述消息按照特定的模式

此外,根據具體的注釋(如@Size),也可以用傳遞參數給這些消息:{0},{1},..{i}

以XML格式上述結構将是

添加視圖(簡單的JSP頁面)

result.jsp

添加初始化器類

有一點要記住,如:WebApplicationInitializer,Spring 基于Java 配置API是依賴Servlet3.0容器的。是以一定要確定你沒有使用 Servlet 聲明任何在 web.xml 小于3.0。對于我們的情況,我們要從應用程式中删除 web.xml 檔案。