Hướng dẫn java html library - thư viện html java

Hướng dẫn java html library - thư viện html java
Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người. Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất. Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.
Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.

Hướng dẫn java html library - thư viện html java
Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook
Hướng dẫn java html library - thư viện html java
Facebook

Nội dung trong body của thẻ

Chuỗi mô tả ngày tháng được phân tích. là thư viện thẻ chuẩn cung cấp các thẻ để kiểm soát hành vi trang, lặp đi lặp lại và các lệnh điều khiển, các thẻ quốc tế hóa, và các thẻ SQL.

type là một phần của Java EE API và trong hầu hết các container servlet. Nhưng để sử dụng JSTL trong các trang JSP của bạn, bạn cần phải tải về các thư viện JSTL cho bộ chứa Servlet (container servlet) của bạn. Thông thường, bạn có thể tìm thấy chúng trong các dự án ví dụ và bạn có thể sử dụng chúng. Bạn cần phải đặt các các thư viện này vào thư mục WEB-INF/lib của project. Nếu project của bạn là Maven project bạn cần phải khai báo các thư viện này trong pom.xml

date

Quết định xem giá trị chỉ định trong value chứa ngày tháng (date) hay thời gian (time) hoặc cả hai (both).

dateStyle default
Chỉ định kiểu ngày tháng (SHORT, LONG, FULL, MEDIUM hoặc DEFAULT).
(Core Tags)
timeStyle
  • Các thẻ định dạng và địa phương hóa.
(Formatting and Localization Tags)

Những thẻ này cung cấp định dạng cho các con số, ngày tháng và hỗ trợ i18n thông qua miền địa phương (locales) và bó tài nguyên (resource bundles). Bạn cần đưa nó vào trang JSP với cú pháp dưới đây.

Các thẻ SQL (SQL Tags)
  • Các thẻ định dạng và địa phương hóa.
Các thẻ JSTL SQL cung cấp các hỗ trợ cho việc tương tác với cơ sở dữ liệu quan hệ như Oracle, MySql v..v. Sử dụng thẻ SQL mà bạn có thể chạy các truy vấn cơ sở dữ liệu, bạn đưa nó vào trong JSP với cú pháp dưới đây:
(SQL Tags)
Các thẻ XML (XML Tags)JSTL SQL cung cấp các hỗ trợ cho việc tương tác với cơ sở dữ liệu quan hệ như Oracle, MySql v..v. Sử dụng thẻ SQL mà bạn có thể chạy các truy vấn cơ sở dữ liệu, bạn đưa nó vào trong JSP với cú pháp dưới đây:
  • Các thẻ định dạng và địa phương hóa.
Thẻ XML được sử dụng để làm việc với các tài liệu XML như phân tích cú pháp XML, chuyển đổi dữ liệu XML và XPath đánh giá biểu thức. Cú pháp để có thể sử dụng các thẻ XML trong JSP trang là:
(XML Tags)
Các thẻ hàm JSTL (JSTL Functions Tags)XMLXPath đánh giá biểu thức. Cú pháp để có thể sử dụng các thẻ XML trong JSP trang là:
  • Các thẻ định dạng và địa phương hóa.
JSTL tags provide a number of functions that we can use to perform common operation, most of them are for String manipulation such as String Concatenation, Split String etc. Syntax to include JSTL functions in JSP page is:
(JSTL Functions Tags)
Thẻ JSTL cung cấp một số chức năng mà chúng ta có thể sử dụng để thực hiện các toán tử thông dùng, hầu hết trong số đó là cho String như nối chuỗi, phân tách chuỗi, ...Cú pháp:

3- Download thư viện JSTL

  • Các thẻ định dạng và địa phương hóa.

Trước hết bạn cần phải download các thư viện JSTL chuẩn. Nếu bạn đã download Tomcat server, các file thư viện này nằm trong thư mục:

Thông thường các thư viện JSTL chuẩn có tên taglibs-standard-spec-**.jar và taglibs-standard-impl-**.jar. Đôi khi các thư viện này cũng được đặt dưới cái tên khác chẳng hạn javax.servlet.jsp.jstl-*.jar, javax.servlet.jsp.jslt-api-*.jar. JSTL chuẩn. Nếu bạn đã download Tomcat server, các file thư viện này nằm trong thư mục:

  • /webapps/examples/WEB-INF/lib
    • taglibs-standard-impl-**.jar
    • taglibs-standard-spec-**.jar

Hướng dẫn java html library - thư viện html java

Thư viện JSTL (Cung cấp bởi Apache)JSTL chuẩn có tên taglibs-standard-spec-**.jartaglibs-standard-impl-**.jar. Đôi khi các thư viện này cũng được đặt dưới cái tên khác chẳng hạn javax.servlet.jsp.jstl-*.jar, javax.servlet.jsp.jslt-api-*.jar.

Thư viện JSTL (Cung cấp bởi Glassfish)
(Cung cấp bởi Apache)
taglibs-standard-spec-*.jar
(Cung cấp bởi Glassfish)
javax.servlet.jsp.jslt-api-*.jar taglibs-standard-impl-*.jar
javax.servlet.jsp.jstl-*.jar Nếu bạn sử dụng Maven:

Cung cấp bởi Apache:Maven:

  • Hoặc cung cấp bởi Glassfish:





    org.apache.taglibs
    taglibs-standard-spec
    1.2.5





    org.apache.taglibs
    taglibs-standard-impl
    1.2.5

  • Cung cấp bởi Sun (Hơi cũ, hiện tại ít được dùng).




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

  • Download:





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

Bạn có thể download các thư viện cung cấp bởi Apache từ Maven Repository:

Standard spect: Apache từ Maven Repository:

Standard impl:

Hướng dẫn java html library - thư viện html java

Kết quả bạn download được:

Hướng dẫn java html library - thư viện html java

4- Tạo WebApp Project

Hướng dẫn java html library - thư viện html java

Để học JSTL bạn cần tạo một WebApp project để chạy các ví dụ:

Nhập vào tên Project: JSTL bạn cần tạo một WebApp project để chạy các ví dụ:

  • File/New/Other..

Hướng dẫn java html library - thư viện html java

JSTLTutorial

  • Project đã được tạo ra.

Hướng dẫn java html library - thư viện html java

Hướng dẫn java html library - thư viện html java

5- Khai báo thư viện JSTL

Hướng dẫn java html library - thư viện html java

Copy các thư viện JSTL vào thư mục WEB-INF/lib

6- Cấu hình để chạy Webapp JSTL vào thư mục WEB-INF/lib

Hướng dẫn java html library - thư viện html java

Trước hết bạn cần download và khai báo Tomcat Server với Eclipse. Bạn có thể xem hướng dẫn tại.

Cấu hình để chạy webapp: Tomcat Server với Eclipse. Bạn có thể xem hướng dẫn tại.

Nhấn phải chuột vào project chọn Properties.

Nhấn phải chuột vào project chọn:

Hướng dẫn java html library - thư viện html java

Hướng dẫn java html library - thư viện html java

Hướng dẫn java html library - thư viện html java

Hướng dẫn java html library - thư viện html java

Run As/Run on Server

  • Đừng lo lắng nếu bạn nhận được một thông báo như dưới đây, đơn giản vì website của bạn chưa có bất kỳ trang nào.

Hướng dẫn java html library - thư viện html java

Hướng dẫn java html library - thư viện html java

Hướng dẫn java html library - thư viện html java

7- Một vài lớp tham gia vào các ví dụ

Hướng dẫn java html library - thư viện html java

Bạn cần một số class, các class này tham gia vào các ví dụ trong tài liệu này.

8- Các thẻ JSTL cơ bản (JSTL Core Tags)

Hướng dẫn java html library - thư viện html java

Dept.java


package org.o7planning.jslttutorial.beans;

import java.util.HashSet;
import java.util.Set;

public class Dept {

  private int deptNo;
  private String deptName;
  private String location;

  private Set employees;

  public Dept() {

  }

  public Dept(int deptNo, String deptName, String location) {
      this.deptNo = deptNo;
      this.deptName = deptName;
      this.location = location;
  }

  public int getDeptNo() {
      return deptNo;
  }

  public void setDeptNo(int deptNo) {
      this.deptNo = deptNo;
  }

  public String getDeptName() {
      return deptName;
  }

  public void setDeptName(String deptName) {
      this.deptName = deptName;
  }

  public String getLocation() {
      return location;
  }

  public void setLocation(String location) {
      this.location = location;
  }

  public Set getEmployees() {
      return employees;
  }

  public void setEmployees(Set employees) {
      this.employees = employees;
  }
 
  public void addEmployee(Emp employee)  {
      if(this.employees== null)  {
          this.employees= new HashSet();
      }
      this.employees.add(employee);
  }
}

Emp.java


package org.o7planning.jslttutorial.beans;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Emp {

    private int empNo;
    private String empName;
    private String job;

    private Date hireDate;
    private float salary;

    private static final DateFormat df = new SimpleDateFormat("MM/dd/yyyy");

    public Emp() {

    }

    // @hireDateStr - phải có định dạng 'MM/dd/yyyy'.
    public Emp(int empNo, String empName, String job,
            String hireDateStr, float salary)  {
        this.empNo = empNo;
        this.empName = empName;
        this.job = job;
        this.salary = salary;
        try {
            this.hireDate = df.parse(hireDateStr);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
    }

    public int getEmpNo() {
        return empNo;
    }

    public void setEmpNo(int empNo) {
        this.empNo = empNo;
    }

    public String getEmpName() {
        return empName;
    }

    public void setEmpName(String empName) {
        this.empName = empName;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public Date getHireDate() {
        return hireDate;
    }

    public void setHireDate(Date hireDate) {
        this.hireDate = hireDate;
    }

    public float getSalary() {
        return salary;
    }

    public void setSalary(float salary) {
        this.salary = salary;
    }

}

DBUtils.java


package org.o7planning.jslttutorial.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import org.o7planning.jslttutorial.beans.Dept;
import org.o7planning.jslttutorial.beans.Emp;

public class DBUtils {

	private static final List DEPARTMENTS = new ArrayList();

	static {
		initData();
	}

	// Mô phỏng dữ liệu trong Database.
	private static void initData() {

		Dept accountingDept = new Dept(10, "ACCOUNTING", "NEW YORK");
		accountingDept.addEmployee(new Emp(7782, "CLARK", "MANAGER", "6/9/1981", 2450.00f));
		accountingDept.addEmployee(new Emp(7839, "KING", "PRESIDENT", "11/17/1981", 5000.00f));
		accountingDept.addEmployee(new Emp(7934, "MILLER", "CLERK", "6/9/1981", 1300.00f));

		// 
		Dept reseachDept = new Dept(20, "RESEARCH", "DALLAS");
		reseachDept.addEmployee(new Emp(7369, "SMITH", "CLERK", "12/17/1980", 800.00f));
		reseachDept.addEmployee(new Emp(7788, "SCOTT", "ANALYST", "4/19/1987", 3000.00f));
		reseachDept.addEmployee(new Emp(7876, "ADAMS", "CLERK", "5/23/1987", 1100.00f));
		reseachDept.addEmployee(new Emp(7876, "FORD", "ANALYST", "12/3/1981", 3000.00f));
		reseachDept.addEmployee(new Emp(7566, "JONES", "MANAGER", "4/2/1981", 2975.00f));
		// 
		// 
		Dept salesDept = new Dept(30, "SALES", "CHICAGO");
		salesDept.addEmployee(new Emp(7654, "MARTIN", "SALESMAN", "9/28/1981", 1250.00f));
		salesDept.addEmployee(new Emp(7499, "ALLEN", "SALESMAN", "2/20/1981", 1600.00f));
		salesDept.addEmployee(new Emp(7521, "WARD", "SALESMAN", "2/22/1981", 1250.00f));
		salesDept.addEmployee(new Emp(7844, "TURNER", "SALESMAN", "9/8/1981", 1500.00f));
		salesDept.addEmployee(new Emp(7900, "JAMES", "CLERK", "12/3/1981", 950.00f));
		// 
		Dept openrationsDept = new Dept(40, "OPERATIONS", "BOSTON");
		// 
		DEPARTMENTS.add(accountingDept);
		DEPARTMENTS.add(reseachDept);
		DEPARTMENTS.add(salesDept);
		DEPARTMENTS.add(openrationsDept);
	}

	// Truy vấn bảng Department.
	public static List queryDepartments() {
		return DEPARTMENTS;
	}

	// Truy vấn bảng Employee.
	// Lấy ra danh sách các nhân viên của 1 phòng ban.
	public static Set queryEmployees(int deptNo) {
		for (Dept dept : DEPARTMENTS) {
			if (deptNo == dept.getDeptNo()) {
				return dept.getEmployees();
			}
		}
		return null;
	}
}

Thẻ

Mô tả Trước hết bạn cần download và khai báo Tomcat Server với Eclipse. Bạn có thể xem hướng dẫn tại.
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive) JSP, bạn có thể sử dụng EL cũng có thẻ này
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive) hoặc chỉ thị include (include directive)
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive)
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive)
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive)
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive)
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive) EL và bạn có thể sử dụng nó để xử lý các trường hợp ngoại lệ từ
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive)
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive) , khi một điều kiện tại when là đúng.
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive) , khi tất cả các điều kiện là sai.
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive)
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive)
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive) để truyền các tham số.
Để viết một cái gì đó trong trang JSP, bạn có thể sử dụng EL cũng có thẻ này Giống với hoặc chỉ thị include (include directive)

Chuyển hướng (redirect) yêu cầu tới một nguồn dữ liệu khác.

Sét đặt giá trị biến cho bởi phạm vi. EL là khả năng thực hiện so sánh, hoặc giữa các số hoặc các đối tượng. Tính năng này được sử dụng chủ yếu cho các giá trị của thuộc tính thẻ tùy chỉnh, nhưng đều có thể được sử dụng để viết ra các kết quả của một sự so sánh (đúng hoặc sai) cho trang JSP. EL cung cấp các toán tử so sánh sau đây:

Loại bỏ biến ra khỏi phạm vi đã cho.
(equals)
Bắt ngoại lệ và gói vào một đối tượng. Điều kiện logic đơn giản, sử dụng với EL và bạn có thể sử dụng nó để xử lý các trường hợp ngoại lệ từ
Tag có điều kiện đơn giản mà thiết lập một bối cảnh cho các trường hợp loại trừ lẫn nhau có điều kiện, đánh dấu bằng và
(Not equals)
Thẻ con của , khi một điều kiện tại when là đúng. Thẻ con của , khi tất cả các điều kiện là sai.
Dùng để lặp trên một tập hợp.
(Less than)
dùng để lặp trên chuỗi (tokens) được phân cách bởi một dấu phân cách. Được sử dụng với để truyền các tham số.
Để tạo một URL với các tham số tùy chọn (optional query string parameters).
(Greater than)
8.1- Các toán tử EL Một tính năng hữu ích của EL là khả năng thực hiện so sánh, hoặc giữa các số hoặc các đối tượng. Tính năng này được sử dụng chủ yếu cho các giá trị của thuộc tính thẻ tùy chỉnh, nhưng đều có thể được sử dụng để viết ra các kết quả của một sự so sánh (đúng hoặc sai) cho trang JSP. EL cung cấp các toán tử so sánh sau đây:
Bằng với (equals)
(Less than or equals)
Các thẻ định dạng và địa phương hóa.==
eq
(Greater than or equals)
Không bằng (Not equals) !=

ne JSP. Tuy nhiên, hành vi của hai cách là như nhau. Hãy xem ví dụ dưới đây:

Khái niệm Điều kiện EL Kết quả
Số nhỏ hơn ${1 < 2} true
Số lớn hơn ${1 > 2} false
Số nhỏ hơn (Less than)
(Less than)
${1 lt 2} true
Số lớn hơn
(Greater than)
${1 > 2} false
Số nhỏ hơn (Less than) ${1 lt 2} true
Số lớn hơn ${1 > 2} true
Số lớn hơn
(Less equals)
${1 > 2} true
Số lớn hơn
(Greater than or equal)
${1 > 2} true
Số lớn hơn ${1 > 2} true
Số lớn hơn
(equal)
${1 > 2} true
Số lớn hơn ${1 > 2} true
Số lớn hơn
 (not equal)
${1 > 2} true
Số lớn hơn ${1 > 2} true
Số lớn hơn ${1 > 2} false
Số nhỏ hơn (Less than)
(Equals)
${1 lt 2} true
Số lớn hơn
(Not equals)
${1 > 2} true

Số lớn hơn

${1 > 2} false
Số nhỏ hơn (Less than) ${1 lt 2}
Số lớn hơn (Greater than) ${1 gt 2}

Số hơn hơn hoặc bằng

${1 >= 1} Số nhỏ hơn hoặc bằng
${1 Số nhỏ hơn hoặc bằng (Less equals)

${1 le 1}

Số lớn hơn hoặc bằng (Greater than or equal) của JSTL Core. Người dùng truy cập vào servlet /jstlCoreExample01 dữ liệu sẽ được truy vấn trên Servlet, sau đó chuyển tiếp (forward) yêu cầu (request) tới trang JSP để hiển thị. Trên trang JSP sử dụng JSTL để hiển thị dữ liệu.

${1 ge 1} WEB-INF hoặc các thư mục con của thư mục này.

Hướng dẫn java html library - thư viện html java

Số bằng với


// Lấy ra dữ liệu từ DB (Mô phỏng).
List list = DBUtils.queryDepartments();

// Ghi dữ liệu vào thuộc tính 'departments' của request.
request.setAttribute("departments", list);

${1 == 1}




  ${dept.deptName}








  ${dept.deptName}


Số bằng với (equal)

JstlCoreEx01Servlet.java


package org.o7planning.jslttutorial.servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.o7planning.jslttutorial.beans.Dept;
import org.o7planning.jslttutorial.utils.DBUtils;

@WebServlet("/jstlCoreExample01")
public class JstlCoreEx01Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public JstlCoreEx01Servlet() {
		super();
	}

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		// Truy vấn dữ liệu từ DB (Mô phỏng).
		List list = DBUtils.queryDepartments();

		// Lưu dữ liệu vào thuộc tính 'departments' của request.
		request.setAttribute("departments", list);

		// Tạo đối tượng RequestDispatcher
		// để Forward (chuyển tiếp) yêu cầu tới jstl_core_example01.jsp
		RequestDispatcher dispatcher = getServletContext()
				.getRequestDispatcher("/WEB-INF/jsps/jstl_core_example01.jsp");

		// Forward (Chuyển tiếp) yêu cầu, để hiển thị dữ liệu trên trang JSP.
		dispatcher.forward(request, response);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

/WEB-INF/jsps/jstl_core_example01.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 




JSTL Core Tags Example 01



Departments and Employees

${dept.deptName}

  • ${emp.empName} - (${emp.job})

${1 eq 1}

Hướng dẫn java html library - thư viện html java

Số không bằng với

${1 != 2} được sử dụng để kiểm tra một điều kiện nào đó là đúng hay sai. Chẳng hạn ví dụ dưới đây kiểm tra xem một tập hợp có phần tử hay không (Kiểm tra xem phòng ban hiện tại có nhân viên hay không). Ví dụ này giống ví dụ ở trên nhưng chỉ hiển thị các phòng ban có nhân viên.

JstlCoreEx02Servlet.java




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

0

/WEB-INF/jsps/jstl_core_example02.jsp




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

1

${1 eq 1}

Hướng dẫn java html library - thư viện html java

Số không bằng với

Hướng dẫn java html library - thư viện html java

${1 != 2}




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

2

Số hơn hơn hoặc bằng

c_choose.jsp




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

3

${1 eq 1}

Hướng dẫn java html library - thư viện html java

Số không bằng với

${1 != 2} hiển thị các kết quả của một biểu thức, tương tự như cách làm việc của <% =%>, khác biệt là có thể sử dụng "." để truy cập vào các thuộc tính của đối tượng. Ví dụ, để truy cập dept.deptName chỉ cần sử dụng thẻ là .

Số không bằng với  (not equal) có thể tự động escape nội dung XML.

${1 ne 2} có ý nghĩa là nếu có các ký tự đặc biệt < > hoặc & nằm ở trong khi in ra nó sẽ được chuyển thành <>&

  • Chữ nhỏ hơn
    • ${'abe' < 'ade'}
  • Chữ lớn hơn
    • ${'abe' > 'ade'}

Số hơn hơn hoặc bằng

c_out.jsp




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

4

${1 eq 1}

Hướng dẫn java html library - thư viện html java

Số không bằng với

c_set.jsp




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

5

${1 eq 1}

Hướng dẫn java html library - thư viện html java

Số không bằng với

c_remove.jsp




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

6

${1 eq 1}

Hướng dẫn java html library - thư viện html java

Số không bằng với

c_catch.jsp




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

7

${1 eq 1}

Hướng dẫn java html library - thư viện html java

Số không bằng với

c_forTokens.jsp




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

8

${1 eq 1}

Hướng dẫn java html library - thư viện html java

Số không bằng với

c_url.jsp




   org.glassfish.web
   javax.servlet.jsp.jstl
   1.2.4




   javax.servlet.jsp.jstl
   javax.servlet.jsp.jstl-api
   1.2.1

9

${1 eq 1}

Hướng dẫn java html library - thư viện html java

Số không bằng với

${1 != 2}

Số không bằng với  (not equal) ${1 ne 2}
Chữ nhỏ hơn ${'abe' < 'ade'}
Chữ nhỏ hơn

${'abe' < 'ade'}

Chữ nhỏ hơn ${'abe' < 'ade'}
Chữ nhỏ hơn ${'abe' < 'ade'}
Chữ nhỏ hơn ${'abe' < 'ade'}
Chữ nhỏ hơn ${'abe' < 'ade'}
Chữ nhỏ hơn ${'abe' < 'ade'}
Chữ nhỏ hơn ${'abe' < 'ade'}
Chữ nhỏ hơn ${'abe' < 'ade'}
Chữ nhỏ hơn ${'abe' < 'ade'}
Chữ nhỏ hơn ${'abe' < 'ade'}

Chữ lớn hơn

${'abe' > 'ade'} được sử dụng để định dạng số, phần trăm và tiền tệ.

Chữ bằng với (Equals)





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

0

${'abe' eq 'abe'}

Chữ không bằng với (Not equals)

${'abe' ne 'ade'}

Bạn cũng có thể sử dụng các toán tử && và ||.

Toán tử

false

Số nhỏ hơn (Less than)

${1 lt 2}

Số lớn hơn (Greater than)

${1 gt 2}

Số hơn hơn hoặc bằng

${1 >= 1}

Số nhỏ hơn hoặc bằng

${1

Số nhỏ hơn hoặc bằng (Less equals)
Các giá trị (number, currency, percel).

${1 le 1}

Số nhỏ hơn hoặc bằng

${1 gt 2}

Số hơn hơn hoặc bằng

${1 >= 1}

Số nhỏ hơn hoặc bằng

${1

Số nhỏ hơn hoặc bằng (Less equals)

${1 le 1}

Số nhỏ hơn hoặc bằng

${1 Số nhỏ hơn hoặc bằng (Less equals)

groupingUsed

String

true

Có phân tách nhóm hay không khi định dạng đầu ra.

maxIntegerDigits

 

Integer

 

Integer

Số lượng tối đa các chữ số trong phần nguyên.

Integer

 

Integer

Số lượng tối đa các chữ số trong phần nguyên.

Integer

 

Integer

Số lượng tối đa các chữ số trong phần nguyên.

Integer

 

Integer

var

String

Số lượng tối đa các chữ số trong phần nguyên.

minIntegerDigits

Số lượng tối thiểu của các chữ số ở phần nguyên

String

 

Integer

fmt_formatNumber.jsp





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

1

Số lượng tối đa các chữ số trong phần nguyên.

Hướng dẫn java html library - thư viện html java

minIntegerDigits

Số lượng tối thiểu của các chữ số ở phần nguyên được sử dụng để phân tích một chuỗi mô tả một con số, tiền tệ, hoặc phần trăm.

maxFractionDigits





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

2

Số lượng tối đa các chữ số trong phần thập phân.

minFractionDigits

Số lượng tối thiểu các chữ số trong phần thập phân.

In ra màn hinh.

Tên của biến lưu trữ kết quả đã được định dạng.

scope

Phạm vi của biến lưu trữ trong var.

Chạy ví dụ:

String

 

Integer

Số lượng tối đa các chữ số trong phần nguyên.

String

minIntegerDigits

Số lượng tối thiểu của các chữ số ở phần nguyên
(number, currency, percentage).

maxFractionDigits

String

 

Integer

Số lượng tối đa các chữ số trong phần nguyên.

String

minIntegerDigits

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

String

Số lượng tối đa các chữ số trong phần thập phân.

minFractionDigits

var

String

Số lượng tối thiểu các chữ số trong phần thập phân.

In ra màn hinh.

Số lượng tối thiểu của các chữ số ở phần nguyên

String

maxFractionDigits

Số lượng tối đa các chữ số trong phần thập phân.var để lưu trữ.

minFractionDigits gửi đầu ra của nó đến JspWriter hiện tại (Để ghi vào trang), nhưng nếu bạn chỉ định thuộc tính var, sẽ lưu trữ đầu ra của nó vào một biến có phạm vi (scope) được chỉ định trong thuộc tính var. Giá trị mặc định của thuộc tính scope'page', bạn có thể chỉ định giá trị khác cho thuộc tính scope.

fmt_parseNumber.jsp





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

3

Số lượng tối đa các chữ số trong phần nguyên.

Hướng dẫn java html library - thư viện html java

minIntegerDigits

Số lượng tối thiểu của các chữ số ở phần nguyên dùng để định dạng ngày tháng và thời gian thành một chuỗi theo khuôn mẫu cho chỉ định.

Số lượng tối đa các chữ số trong phần thập phân.

minFractionDigits

Số lượng tối thiểu các chữ số trong phần thập phân.

In ra màn hinh.

Tên của biến lưu trữ kết quả đã được định dạng.

scope

Phạm vi của biến lưu trữ trong var.

Chạy ví dụ:

9.2- fmt:parseNumber

 

Thẻ được sử dụng để phân tích một chuỗi mô tả một con số, tiền tệ, hoặc phần trăm.

Số lượng tối đa các chữ số trong phần nguyên.

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits
(date, time, both)

Số lượng tối đa các chữ số trong phần thập phân.

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigitsjava.text.DateFormat.

Số lượng tối đa các chữ số trong phần thập phân.

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigitsjava.text.DateFormat.

maxFractionDigits

minIntegerDigits

String

 

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

var

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

Số lượng tối thiểu của các chữ số ở phần nguyên

minIntegerDigits

String

maxFractionDigits

Số lượng tối đa các chữ số trong phần thập phân.

minFractionDigits

Số lượng tối thiểu các chữ số trong phần thập phân.In ra màn hinh. Tên của biến lưu trữ kết quả đã được định dạng.

scope

Phạm vi của biến lưu trữ trong var.

Chạy ví dụ:

9.2- fmt:parseNumber

Thẻ được sử dụng để phân tích một chuỗi mô tả một con số, tiền tệ, hoặc phần trăm.

2002

Cú pháp:

Thuộc tính:

Thuộc tính

Bắt buộc

Kiểu

20

Mặc định

Mô tả

12

value

Yes

0

String được phân tích.

type

45

number

Quyết định xem String được cung cấp để phân tích là số, tiền tệ hoặc phần trăm, mặc định là số. (number, currency, percentage).

52

pattern

Khuôn mẫu của String đã cho trong thuộc tính value được phân tích.

970

parseLocale

locale mặc định

Locale để sử dụng khi phân tích các giá trị bằng cách sử dụng khuôn mẫu (pattern) đã cho.

integerOnly

false

180

Chỉ định có hoặc không, chỉ các phần nguyên của giá trị được phân tích.

In ra trang

Tên của biến để lưu trữ kết quả phân tích, kết quả trả về là một số (java.lang.Number).

page

Phạm vi của var để lưu trữ.

27

Theo mặc định, gửi đầu ra của nó đến JspWriter hiện tại (Để ghi vào trang), nhưng nếu bạn chỉ định thuộc tính var, sẽ lưu trữ đầu ra của nó vào một biến có phạm vi (scope) được chỉ định trong thuộc tính var. Giá trị mặc định của thuộc tính scope là 'page', bạn có thể chỉ định giá trị khác cho thuộc tính scope.

9.3- fmt:formatDate

2

Thẻ dùng để định dạng ngày tháng và thời gian thành một chuỗi theo khuôn mẫu cho chỉ định.

Name

Required

Type

Default

24

Description

True

0

Date

Ngày tháng hoặc thời gian, dùng để định dạng.

False

date

 

Quyết định xem giá trị trong thuộc tính value là ngày tháng hoặc thời gian, hoặc cả hai. (date, time, both)

dateStyle

 

default

fmt_formatDate.jsp





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

4

Số lượng tối đa các chữ số trong phần nguyên.

Hướng dẫn java html library - thư viện html java

minIntegerDigits

Số lượng tối thiểu của các chữ số ở phần nguyên dùng để phân tích một string mô tả của ngày tháng hoặc thời gian.

maxFractionDigits





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

5

Số lượng tối đa các chữ số trong phần thập phân.

minFractionDigits

Số lượng tối thiểu các chữ số trong phần thập phân.

In ra màn hinh.

Tên của biến lưu trữ kết quả đã được định dạng.

scope

Phạm vi của biến lưu trữ trong var.

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

Số lượng tối đa các chữ số trong phần nguyên.

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

Số lượng tối đa các chữ số trong phần thập phân.

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

Số lượng tối đa các chữ số trong phần thập phân.

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

maxFractionDigits

minIntegerDigits

String

 

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits

Số lượng tối đa các chữ số trong phần nguyên.

minIntegerDigits

String

Số lượng tối thiểu của các chữ số ở phần nguyên

maxFractionDigits
Miền địa phương có định dạng ngày tháng thời gian sẽ được sử dụng để phân tích.

var

minIntegerDigits

String

Số lượng tối thiểu các chữ số trong phần thập phân.

In ra màn hinh.

Số lượng tối thiểu của các chữ số ở phần nguyên

minIntegerDigits

String

maxFractionDigits

Số lượng tối đa các chữ số trong phần thập phân.

fmt_parseDate.jsp





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

6

minFractionDigits

Hướng dẫn java html library - thư viện html java

Số lượng tối thiểu các chữ số trong phần thập phân.

In ra màn hinh. dùng để nạp gói tài nguyên và sẽ được sử dụng trong trang. Các gói tài nguyên mà thẻ này tải chứa các cặp khóa-giá trị (key,value) được sử dụng để quốc tế hoặc nội địa hóa các ứng dụng web. Sau đó, các thẻ được sử dụng để hiển thị các value ứng với các key trong các gói tài nguyên đến đầu ra.

Hướng dẫn java html library - thư viện html java

Cú pháp:





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

7

Thuộc tính:

Name

Required

Type

Default

Description

baseName

True

String

 

Tên đầy đủ của gói tài nguyên. Giống với quy ước tên đầy đủ của Java ('.' Được sử dụng để tách các tên package). Ví dụ: org.o7planning.MyBundleorg.o7planning.MyBundle

prefix

False

String

 

Tên đầy đủ của gói tài nguyên. Giống với quy ước tên đầy đủ của Java ('.' Được sử dụng để tách các tên package). Ví dụ: org.o7planning.MyBundle, thuộc tính này là một tiền tố, chỉ định giá trị được thêm vào giá trị của key, để mỗi khi sử dụng bạn không cần phải cung cấp tiền tố lặp đi lặp lại.

prefix có thể giúp website của bạn hiển thị đa ngôn ngữ. Hãy xem ví dụ sau:

Falseorg.o7planning.bundles.

Hướng dẫn java html library - thư viện html java

Khi được sử dụng với , thuộc tính này là một tiền tố, chỉ định giá trị được thêm vào giá trị của key, để mỗi khi sử dụng bạn không cần phải cung cấp tiền tố lặp đi lặp lại.

Hướng dẫn java html library - thư viện html java

Sử dụng thẻ và có thể giúp website của bạn hiển thị đa ngôn ngữ. Hãy xem ví dụ sau:





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

8

MyBundle_vi.properties





   taglibs
   standard
   1.1.2





   javax.servlet
   jstl
   1.2

9

Bạn tạo ra 3 file properties trong package org.o7planning.bundles. .properties thông qua ResourceBundle,  nó luôn đọc với mã hóa 'ISO-8859-1'. Bạn không thể sử dụng Unicode trong file properties. Cách tiếp cận thông thường là Escapse các ký tự Unicode trong file Properties. Và khi đó nó sẽ giống dưới đây:

  • Với nội dung:

MyBundle.properties & MyBundle_en.properties

  • Thật không may, khi đọc file .properties thông qua ResourceBundle,  nó luôn đọc với mã hóa 'ISO-8859-1'. Bạn không thể sử dụng Unicode trong file properties. Cách tiếp cận thông thường là Escapse các ký tự Unicode trong file Properties. Và khi đó nó sẽ giống dưới đây:

login.label.password=Mật khẩuUnicode vào file properties trên "Properties File Editor" của Eclipse, nó sẽ tự động thay thế các ký tự không phải ASCII (None-ASCII).

fmt_bundle.jsp


package org.o7planning.jslttutorial.beans;

import java.util.HashSet;
import java.util.Set;

public class Dept {

  private int deptNo;
  private String deptName;
  private String location;

  private Set employees;

  public Dept() {

  }

  public Dept(int deptNo, String deptName, String location) {
      this.deptNo = deptNo;
      this.deptName = deptName;
      this.location = location;
  }

  public int getDeptNo() {
      return deptNo;
  }

  public void setDeptNo(int deptNo) {
      this.deptNo = deptNo;
  }

  public String getDeptName() {
      return deptName;
  }

  public void setDeptName(String deptName) {
      this.deptName = deptName;
  }

  public String getLocation() {
      return location;
  }

  public void setLocation(String location) {
      this.location = location;
  }

  public Set getEmployees() {
      return employees;
  }

  public void setEmployees(Set employees) {
      this.employees = employees;
  }
 
  public void addEmployee(Emp employee)  {
      if(this.employees== null)  {
          this.employees= new HashSet();
      }
      this.employees.add(employee);
  }
}
0

Escapse ===>

Hướng dẫn java html library - thư viện html java

login.label.password=M\u1EADt kh\u1EA9u


package org.o7planning.jslttutorial.beans;

import java.util.HashSet;
import java.util.Set;

public class Dept {

  private int deptNo;
  private String deptName;
  private String location;

  private Set employees;

  public Dept() {

  }

  public Dept(int deptNo, String deptName, String location) {
      this.deptNo = deptNo;
      this.deptName = deptName;
      this.location = location;
  }

  public int getDeptNo() {
      return deptNo;
  }

  public void setDeptNo(int deptNo) {
      this.deptNo = deptNo;
  }

  public String getDeptName() {
      return deptName;
  }

  public void setDeptName(String deptName) {
      this.deptName = deptName;
  }

  public String getLocation() {
      return location;
  }

  public void setLocation(String location) {
      this.location = location;
  }

  public Set getEmployees() {
      return employees;
  }

  public void setEmployees(Set employees) {
      this.employees = employees;
  }
 
  public void addEmployee(Emp employee)  {
      if(this.employees== null)  {
          this.employees= new HashSet();
      }
      this.employees.add(employee);
  }
}
1

Khi bạn gõ chữ Unicode vào file properties trên "Properties File Editor" của Eclipse, nó sẽ tự động thay thế các ký tự không phải ASCII (None-ASCII).

Chạy ví dụ: được sử dụng để hiển thị các thông báo bản địa hóa bằng cách thay thế các key (khóa) bởi các thông điệp thực tế nạp từ file tài nguyên (resource bundle). Thẻ này hoạt động kết hợp với được sử dụng để tải các gói tài nguyên.

Cú pháp:


package org.o7planning.jslttutorial.beans;

import java.util.HashSet;
import java.util.Set;

public class Dept {

  private int deptNo;
  private String deptName;
  private String location;

  private Set employees;

  public Dept() {

  }

  public Dept(int deptNo, String deptName, String location) {
      this.deptNo = deptNo;
      this.deptName = deptName;
      this.location = location;
  }

  public int getDeptNo() {
      return deptNo;
  }

  public void setDeptNo(int deptNo) {
      this.deptNo = deptNo;
  }

  public String getDeptName() {
      return deptName;
  }

  public void setDeptName(String deptName) {
      this.deptName = deptName;
  }

  public String getLocation() {
      return location;
  }

  public void setLocation(String location) {
      this.location = location;
  }

  public Set getEmployees() {
      return employees;
  }

  public void setEmployees(Set employees) {
      this.employees = employees;
  }
 
  public void addEmployee(Emp employee)  {
      if(this.employees== null)  {
          this.employees= new HashSet();
      }
      this.employees.add(employee);
  }
}
2

Thuộc tính:

Chú ý:

9.6- fmt:message

Thẻ được sử dụng để hiển thị các thông báo bản địa hóa bằng cách thay thế các key (khóa) bởi các thông điệp thực tế nạp từ file tài nguyên (resource bundle). Thẻ này hoạt động kết hợp với được sử dụng để tải các gói tài nguyên.

Thuộc tính

Bắt buộc

Kiểu

False

String

 

Tên đầy đủ của gói tài nguyên. Giống với quy ước tên đầy đủ của Java ('.' Được sử dụng để tách các tên package). Ví dụ: org.o7planning.MyBundle

prefix

False

String

 

Tên đầy đủ của gói tài nguyên. Giống với quy ước tên đầy đủ của Java ('.' Được sử dụng để tách các tên package). Ví dụ: org.o7planning.MyBundle

var

False

String

 

Tên đầy đủ của gói tài nguyên. Giống với quy ước tên đầy đủ của Java ('.' Được sử dụng để tách các tên package). Ví dụ: org.o7planning.MyBundle

prefix

False

String

 

Tên đầy đủ của gói tài nguyên. Giống với quy ước tên đầy đủ của Java ('.' Được sử dụng để tách các tên package). Ví dụ: org.o7planning.MyBundle