[JSP] Bài tập: Sử dụng các thẻ nhóm fmt trong JSTL để xây dựng các trang đa ngôn ngữ


Sử dụng các thẻ nhóm fmt trong JSTL để xây dựng các trang đa ngôn ngữ:
Trong bài này chúng ta cùng tìm hiểu một số thẻ của JSTL
1. Xác định ngôn ngữ, quốc gia: setLocale
2. Xác định các file tài nguyên giao diên: setBundle
3. Định dạng giá trị số, tiền tệ và thời gian: formatDate, formatNumber

Snap 2016-01-20 at 10.41.56
Snap 2016-01-20 at 10.43.13

Video thao tác

Mã nguồn tham khảo:

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
        <script>
            function doSubmit()
            {
                document.frm.submit();
            }
        </script>
    </head>

    <c:if test="${empty param.language}">
        <fmt:setLocale value="<%= request.getLocale().getDefault()%>"/>
    </c:if>
    <c:if test="${! empty param.language}">
        <fmt:setLocale value="${param.language}"/>
    </c:if>

    <fmt:setBundle basename="codes.gui" scope="session"/>

    <body>
        <h1><fmt:message key="title"/> </h1>
        <c:if test="${! empty param.btnAdd}">
            <!--check f and l input-->
            <c:if test="${! empty param.txtFirstName 
                          && ! empty param.txtLastName}">
                  <!--connect to db server-->
                  <sql:setDataSource var="conn" scope="session"
                                     user="sa" password="sa"
                                     url="jdbc:sqlserver://LAB03_GV\\MSSQLSERVER2012;databaseName=northwind;"
                                     driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>

                  <!--create insert command and execute it-->
                  <sql:update dataSource="${conn}" var="rowCount" scope="session"
                              sql="insert into employees(Firstname, LastName) values(?,?)">
                      <sql:param value="${param.txtFirstName}"/>
                      <sql:param value="${param.txtLastName}"/>
                  </sql:update>
                  <!--if add ok-->
                  <c:if test="${rowCount > 0}">
                      Employee Added<br/>
                      ${param.txtFirstName}
                  </c:if>
                  <!--Notify if can not add-->
                  <c:if test="${rowCount <= 0}">
                      Can not add this employee
                  </c:if>
            </c:if>
            <!--Display err if Firstname and lastname not valid-->
            <c:if test="${ empty param.txtFirstName 
                           || empty param.txtLastName}">
                  FirstName and LastName can not be null !!   
            </c:if>
        </c:if>

        <form method="POST" name="frm">
            <fmt:message key="firstname"/>:<br/>
            <input type="text" name="txtFirstName" value="" /><br/>
            <fmt:message key="lastname"/>:<br/>
            <input type="text" name="txtLastName" value="" /><br/>
            <input type="submit" value="<fmt:message key="add"/>" name="btnAdd" />


            <fieldset>
                <legend><fmt:message key="format"/></legend>
                <fmt:formatNumber type="currency" value="20000.02"/><br/>
                <fmt:formatDate type="both" dateStyle="full" timeStyle="full"
                value="<%= java.util.Calendar.getInstance().getTime()%>"/>

            </fieldset>
            <fieldset>
                <legend><fmt:message key="language"/></legend>
                <input type="radio" onchange="doSubmit();"
                       name="language" value="vi_VN"
                       <c:if test="${param.language=='vi_VN'}">checked</c:if>
                       />Tiếng Việt
                <input type="radio" onchange="doSubmit();"
                       name="language" value="en_US"
                       <c:if test="${param.language=='en_US'}">checked</c:if>
                       />English
                <input type="radio" onchange="doSubmit();"
                       name="language" value="th_TH"
                       <c:if test="${param.language=='th_TH'}">checked</c:if>
                       />Thai
            </fieldset>

        </form>
    </body>
</html>

Phần 1
Phần 2
Phần 3

Advertisements

One thought on “[JSP] Bài tập: Sử dụng các thẻ nhóm fmt trong JSTL để xây dựng các trang đa ngôn ngữ

Phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s