ホームページ > Java > &#&チュートリアル > SpringMVC でのページの国際化とファイルのアップロードの概要 (コード付き)

SpringMVC でのページの国際化とファイルのアップロードの概要 (コード付き)

不言
リリース: 2018-09-28 15:53:22
転載
2099 人が閲覧しました
この記事では、SpringMVC でのページの国際化とファイルのアップロードについて説明します (コード付き)。必要な方は参考にしていただければ幸いです。

実際、SpringMVC でのページの国際化は、前の章の検証の国際化と基本的に同じです。

1. ページの国際化

1) まず、国際化された Bean 設定を Spring 設定ファイルに追加します

<!-- 注册国际化信息,必须有id,指定资源文件名称,资源文件在src目录下 -->
    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="i18n"></property>
    </bean>
    <!-- 配置LocalResolver用来获取本地化语言 -->
    <bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean>
    <!-- 配置LocaleChanceInterceptor拦截器 -->
    <mvc:interceptors>
        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
    </mvc:interceptors>
ログイン後にコピー

2) 次に、リソース ファイルを追加します。このリソース ファイルのプレフィックスは、上で構成した Bean の値と同じである必要があります。

国際化する必要があるコンテンツをリソース ファイルに記述します。

次に、「国際化」ページにジャンプします。リソースをロードする必要があります

@RequestMapping(value="login",method=RequestMethod.GET)
    public String login(Locale locale,Map<String ,Object> map){
        String name = messageSource.getMessage("name", null, locale);
        String pass = messageSource.getMessage("pass", null, locale);
        String title = messageSource.getMessage("title", null, locale);
        String submit = messageSource.getMessage("submit", null, locale);
        map.put("title", title);
        map.put("pass", pass);
        map.put("name", name);
        map.put("submit", submit);
        map.put("user", new User());
        return "login";
    }
ログイン後にコピー

ページ内で jstl または spring タグのデータ国際化情報を使用できます。 spring の form タグは、spring 検証エラー (前の章で説明した) の後にプロンプ​​ト情報を入力するために使用されます。 ##

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
ログイン後にコピー

これで、ページ内の国際化情報が表示されます。

<form:form action="login" method="post" commandName="user">
        <fmt:message key="name"/>
        <form:input path="username"/>
        <form:errors path="username"/>
        <br>
        <fmt:message key="pass"/>
        <form:input path="userpass"/>
        <input type="submit" value="<spring:message code="submit"/>">
 </form:form>
ログイン後にコピー

リクエストを受信すると、ページに 2 つのハイパーリンクを追加することもできます。 SpringMVC では、コンテキスト内のローカル パーサーを使用して、リクエストに対応するローカライゼーション タイプ情報を取得することもでき、ローカライゼーション タイプを動的に変更するインターセプターをアセンブルして、リクエスト パラメータを指定できます。個別のリクエスト。

<a href="login?locale=zh_CN">中文</a>
<a href="login?locale=en_US">英文</a>
ログイン後にコピー

SpringMVC は、リクエストを受信した後、最初にこのパラメータがあるかどうかを判断し、このパラメータが存在する場合はセッションに追加されます。セッション内に見つからない場合は、デフォルトでマシンの言語を読み取って参照します。

2. ファイルのアップロード

SpringMVC のファイル アップロードは、プラグインによって直接サポートされます。 and-play

MultipartResolver インターフェイス。 Spring はその実装クラス CommonsMultipartResolver を使用して実装します。 SpringMVC コンテキストには自動アセンブリがないため、手動で構成する必要があります。ここでは複数ファイルのアップロードを直接実装します。複数のファイルをアップロードできる場合、単一のファイルをアップロードするのは心配ですか?

設定する前に、まずファイルアップロード用の jar パッケージをインポートします。これらのパッケージは Spring では使用できません。

次に、Bean を手動で設定します

<!-- 配置文件上传 -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 指定默认的编码格式 -->
        <property name="defaultEncoding" value="UTF-8" />
        <!-- 指定允许上传的文件大小,单位Byte -->
        <property name="maxUploadSize" value="512000" />
    </bean>
ログイン後にコピー

この Bean でタイプなどを設定することもできます。必要に応じてソースコードを読むことができます。

<form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="file"/><br>
        <input type="file" name="file"/><br>
        <input type="file" name="file"/><br>
        <input type="submit" value="submit">
    </form>
ログイン後にコピー

enctype="multipart/form-data" これはファイルをアップロードするときに追加する必要があり、ポスト リクエストである必要があることに注意してください。
次に、サーバーがファイルを受信する方法を見てみましょう。 MultipartFile[] を使用して複数のファイルをアップロードし、パラメータの前に注釈 @RequestParam("file") を必ず追加します。エラーが報告されます。 単一ファイルのアップロードには MultipartFile オブジェクトのみを使用する必要があり、注釈は必要ありません。

/**
     *    单文件上传 :  MultipartFile file
     *    多文件上传 :  @RequestParam("file") MultipartFile[] file
     *    多文件上传必须加上 @RequestParam("file")注解否则会报错
     *  @author:MiYa.
     *  @time:2018-9-28 11:50
     */
    @RequestMapping(value="upload",method=RequestMethod.POST)
    public String testFileUpload(HttpServletRequest request , @RequestParam("file") MultipartFile[] file){
        for (int i = 0; i < file.length; i++) {
            MultipartFile multipartFile = file[i];
            System.out.println(" ContentType: " + multipartFile.getContentType());
            System.out.println(" Name: " + multipartFile.getName());
            System.out.println(" OriginalFilename: " + multipartFile.getOriginalFilename());
            System.out.println(" Size: " + multipartFile.getSize());
            //判断是否提交文件,如果没有那么跳过上传
            if(multipartFile.isEmpty()){
                continue;
            }
            // 获取文件的上传路径
            String uploadpath = request.getServletContext().getRealPath("uploads");
            //获取文件名称
            String filename = multipartFile.getOriginalFilename();
            //截取文件后缀
            String fileext = filename.substring(filename.lastIndexOf("."));
            //生成新的随机文件名称
            String newfileName = UUID.randomUUID() + fileext;    
            //文件保存路径
            File savepath = new File(uploadpath + "/" + newfileName);
            //上传文件
            try {
                multipartFile.transferTo(savepath);
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return "welcome";
    }
ログイン後にコピー
MultipartFile で一般的に使用されるメソッドを整理します。

isEmpty(): ファイルを送信するかどうかを決定します。

getContextType() : ファイルの種類を取得します

getName(): フォーム要素名を取得します

getOriginalFilename(): ファイル名を取得します

getSize(): ファイル サイズを取得します

getBytes( ): バイト配列を取得します

以上がSpringMVC でのページの国際化とファイルのアップロードの概要 (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート