1. 程式人生 > >struts2的欄位校驗型別和struts2實現檔案上傳

struts2的欄位校驗型別和struts2實現檔案上傳

使用struts2的輸入校驗
欄位校驗器 配置風格

<field name=”被校驗的欄位”>
    <field-validator type=”校驗器名”>
        <param name=”引數名”>引數值</param>
        <message/>
    </field-validator>
</field>

每個field元素指定Action必須遵守的準則,name屬性指定校驗欄位,如果該屬性需要多個規則,則在該field下面新增多個.該元素可以包含多個子元素來指定校驗器引數。另外每個必須指定用來提示不滿足規則的提示資訊。

非欄位校驗器配置

<validator type=”校驗器名”>
    <param name=”fileName”>需要被校驗的欄位</param><message/>
</validator>

使用strurts2 控制檔案上傳
Struts2 預設使用的是Jakarta 的Common-FileUpload的檔案上傳框架,如需要使用struts2的檔案上傳功能,就要新增倆個jar包。Commons-io-x.x 和Commons-fileUpload-x.xx。

步驟:1、畫表單2、寫Action。屬性 有 表單中的name屬性 以及uploadFileName、uploadContentType。其中uploadFileName封裝上傳檔案的檔名,uploadContentType用於封裝上傳檔案的型別。可以認為如果一個檔案域包含一個屬性名為xxx,那麼Action就需要File xxx; String xxxFileName;String xxxContentType;來封裝這個檔案。還包含了savePath成員變數。該成員變數的值通過配置檔案來設定。如下圖所示
這裡寫圖片描述


手動實現檔案過濾
Web應用不允許瀏覽者自由上傳,尤其不能上傳可執行檔案,還對檔案大小可能還會有限制,因此檔案上傳必須過濾。主要是在Action裡新增 filterTypes()方法。如下

public String filterTypes(String[] types) {
        String fileType = getUploadContentType();
        for(String type:types) {
            if(type.equals(fileType)) {
                return null;
            }
        }
        return
ERROR; } public void validate() { String filterResult = filterTypes(allowTypes.split(",")); if(filterResult!= null) { addFieldError("upload", "上傳的檔案不符合規定"); } }

其中allowTypes 是一個可以在struts.xml檔案中配置的引數。標明瞭允許上傳的檔案型別。
最後結果圖可能如圖
這裡寫圖片描述

其實還有更簡單的方法 那就是在struts.xml檔案中配置攔截器。

<interceptor-ref name="fileUpload">

                <param name="allowedTypes">image/png,image/gif</param>
                <param name="maximumSize">20</param>
            </interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
當出錯提示資訊為英文 時,可以加入mess.properties檔案 來使資源國際化。當然需要在struts.xml檔案中配置。如下
<constant name="struts.custom.i18n.resources" value="mess"></constant>

結果如下圖
這裡寫圖片描述

相關推薦

struts2型別struts2實現檔案

使用struts2的輸入校驗 欄位校驗器 配置風格 <field name=”被校驗的欄位”> <field-validator type=”校驗器名”> <param name=”引數名”>引

案例使用node.js的第三方模組(expressmulter)實現檔案

首先,先按照這兩個第三方模組,按照命令:cnpm i express multer --save 第一步:把express伺服器思路先寫好: 1.匯入模組; 2.例項化物件; 3.寫路由; 4.開啟監聽; 程式碼如下: //上傳檔案的使用(express結合multer的使用

FastDFSnginx實現檔案詳解

1.什麼是FastDFS FastDFS 是用 c 語言編寫的一款開源的分散式檔案系統FastDFS 為網際網路量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高效能等指標,使用 FastDFS很容易搭建一套高效能的檔案伺服器叢集提供檔案上傳、下載等服務。 FastDF

MVC5:使用AjaxHTML5實現檔案功能

引言在實際程式設計中,經常遇到實現檔案上傳並顯示上傳進度的功能,基於此目的,本文就為大家介紹不使用flash 或任何上傳檔案的外掛來實現帶有進度顯示的檔案上傳功能。基本功能:實現帶有進度條的檔案上傳功能高階功能:通過拖拽檔案的操作實現多個檔案上傳功能背景HTML5提供了一種標

SpringBoot專案總結--(1)與加密

一、多欄位校驗 提供Validator的實現類,並且實現Validator介面的supports和validate方法。supports方法用於判斷當前類是不是需要校驗的類。只有當supports方法返回的結果為true時,validate方法才會執行進行校驗。 p

AntDesign Form表單的三種方式

1.使用getFieldDecorator的rules規則 最簡單的方法就是使用getFieldDecorator中的rules驗證。rules中定義校驗規則,message為校驗不通過時的提示文字。 {getFieldDecorator('inputContent', {

Element 表單驗證,取消部分表單結果

<template> <div> <el-form ref="formRules" :model="form" :rules="rules" :inline="true"> <el-form-item prop="name">

更改oracle資料庫中某個表中的某個的資料型別長度

不廢話需求:在plsql中更改oracle資料庫中的info_agency表中的county欄位的資料型別 為varchar 長度為255實現:alter TABLE INFO_AGENCY MODIFY (county VARCHAR(255));親用 則 可用

JAVA(validation)

在開發業務時,不可避免的需要處理一些校驗, 如果是寫if-else這種程式碼去校驗, 那會有一大段這樣的程式碼。不過還好有個校驗外掛:javax.validation.validation-api,不過一般會引用hibernate的校驗元件:org.hibern

Struts2單個檔案多個檔案

<一>簡述: Struts2的檔案上傳其實也是通過攔截器來實現的,只是該攔截器定義為預設攔截器了,所以不用自己去手工配置,<interceptor name=”fileUpload” class=”org.apache.struts2.interceptor.

Struts2的一個多個檔案實現

在Struts2中,上傳檔案時,只要使用java.io.File類來描述上傳檔案即可,比直接使用Commons-FileUpload元件要簡單的多。 上傳單個檔案: 如果上傳的是單個檔案,則在Action類中定義一個File型別的變數。該變數的名字與JSP頁面上的<input />標籤的nam

js相容iechrome的檔案大小

js 檔案上傳功能在ie8和chrome下的語法會有不一樣的地方,取決於瀏覽器對file檔案物件的獲取不一樣。ie通過FileSystemObject此物件獲取,而chrome獲取$(“input[name=’file’]”).file[0].size獲取。

CRC原理verilog實現方法(一)

1.CRC簡介  CRC全稱迴圈冗餘校驗(Cyclic Redundancy Check, CRC),是通訊領域資料傳輸技術中常用的檢錯方法,用於保證資料傳輸的可靠性。網上有關這方面的部落格和資料很多,本文儘量簡潔的梳理一下它的原理。後面還會結合自己的實踐經驗(不多),說一說如何使用verilog語

struts2實現檔案與下載功能

一、Demo介紹 基於struts2框架,實現多檔案的上傳和下載功能。 實現原理圖: 部分介面圖: 上傳成功及下載頁面: 二、主要程式碼 uploadFile.jsp:在form表單中包含一個文字框(上傳使用者的姓名)和兩個檔案上傳選項. <%@

【SSH網上商城專案實戰13】Struts2實現檔案功能

  轉自:https://blog.csdn.net/eson_15/article/details/51366384 上一節我們做完了新增和更新商品的功能,這兩個部分裡有涉及到商品圖片的上傳,並沒有詳細解說。為此,這篇文章詳細介紹一下Struts2實現檔案上傳的功能。 1

Struts2 實現檔案下載

檔案上傳對Struts2來說是一件非常容易的事情。Struts2檔案上傳依賴如下jar包 commons-fileupload-x.x.x.jar commons-io-x.x.x.jar 檔案上傳大致步驟: 編寫頁面 配置struts.xml 攔截器會自動接收上傳的檔

如何在struts2框架下實現檔案(重要步驟)

檔案上傳前臺頁面的三大要素1)form表單的提交方式必須是post提交2)form表單的提交型別必須是enctype.必須多段式.enctype="multipart/form-data"3)檔案上傳使用 <input type="file" name="photo"

struts2 實現檔案原理

  通過struts2實現檔案上傳功能,主要jar包是不可少的包括: aopalliance.jar  ------------------------------------為aop(面向切面)提供了最普通和通用的介面 asm-3.3.jar  ----------------------------

struts2實現檔案與下載

一、單檔案上傳 1、檔案上傳條件: (1)請求方法必須是post (2)enctype的屬性值必須為multipart/form-data (3)提供一個檔案選擇域 2、檔案上傳jsp程式碼 <%@ page language="java" c

struts2實現檔案功能

package com.upload.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.i