Rumah  >  Artikel  >  Java  >  Penukar JSF

Penukar JSF

WBOY
WBOYasal
2024-08-30 15:14:11578semak imbas

Dalam aplikasi JSF (JavaServer Faces), input pengguna dihantar ke pelayan menggunakan permintaan http sebagai permintaan pelanggan. Input pengguna ini dirujuk sebagai nilai. Nilai permintaan ini dihantar ke pelayan dalam bentuk rentetan. Namun begitu, aplikasi JSF menggunakan pelbagai jenis data seperti int, float, double, String, Boolean, date dan sebagainya. Oleh itu sebelum nilai permintaan diproses perlu diubah menjadi jenis data yang sesuai. Proses transformasi ini dirujuk sebagai penukaran. Dalam topik ini, kita akan belajar tentang Penukar JSF.

IKLAN Kursus Popular dalam kategori ini JSF Java Server Faces - Laluan Pembelajaran | 6 Siri Kursus

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Untuk mencapai penukaran dalam aplikasi JSF, rangka kerja JSF menyediakan penukar standard. Penukar ini disediakan sebagai teg dalam pustaka teg teras JSF. Di samping itu, anda boleh mencipta penukar anda sendiri untuk mencapai keperluan aplikasi.  Penukar ini dirujuk sebagai penukar tersuai.

Teg penukar

Dalam aplikasi JSF, data yang dimasukkan oleh pengguna ke dalam komponen UI perlu ditukar kepada format yang sesuai sebelum ia boleh diteruskan oleh aplikasi. Jadual berikut menyenaraikan teg standard yang disediakan oleh pustaka teg teras JSF untuk melaksanakan penukaran.

Teg teras JSF untuk penukaran data –

f:converter – Teg ini digunakan untuk menambahkan penukar sewenang-wenangnya pada contoh komponen induk.

Contoh 

<f:converter converterId = "javax.faces.Integer"/>

f:convertNumber – Teg ini digunakan untuk menambahkan contoh “NumberConverter” pada komponen induk.

Contoh 

<c:convertNumber type = "javax.faces.Integer"/>

f:convertDateTime – Teg ini digunakan untuk menambahkan “DateTimeConverter” kepada komponen induk.

Contoh 

<f:convertDateTime pattern = "dd/mm/yyyy"/>

Rangka kerja JSF menyediakan penukar standard untuk nombor dan tarikh. Kadangkala dalam aplikasi, kita perlu menukar input pengguna kepada jenis data nombor dan tarikh, jadi kita boleh menggunakan rangka kerja JSF untuk menyediakan penukar standard. Semua penukar standard mengandungi dalam rangka kerja JSF thejavax.faces.convertpackage. Semua penukar digunakan secara tersirat berdasarkan nilai komponen dan jika kami ingin mengakses penukar ini, kami boleh mengaksesnya melalui Id penukar.

Rangka kerja JSF Penukar

Kelas IntegerConverter yang digunakan untuk menukar nilai rentetan input pengguna kepada java.lang.Jenis nilai integer dan id penukarnya ialah javax.faces.Integer.

Contoh

<h:inputText id="age" converter="javax.faces.Integer" />

Kelas BigIntegerConverter yang digunakan untuk menukar nilai rentetan input pengguna kepada jenis nilai java.lang.BigInteger dan id penukarnya ialah javax.faces.BigInteger.

Contoh

<h:inputText id="age" converter="javax.faces.Integer" />

Cara yang sama boleh digunakan untuk jenis integer yang berbeza.

Kelas ShortConverter yang digunakan untuk menukar nilai rentetan input pengguna ke java.lang.Jenis nilai Short dan id conveter nya ialah javax.faces.Short.

Kelas LongConverter yang digunakan untuk menukar nilai rentetan input pengguna ke java.lang.Jenis nilai Short dan id conveter nya ialah javax.faces.Long.

Kelas NumberConverter yang digunakan untuk menukar nilai rentetan input pengguna ke java.lang.Number jenis nilai dan id conveter nya ialah javax.faces.Number.

Contoh

<h:outputText value="#{userBean.height}">
<f:convertNumber maxFractionDigits="2" />
</h:outputText>

Kelas FloatConverter yang digunakan untuk menukar nilai rentetan input pengguna ke jenis nilai java.lang.Float dan id conveternya ialah javax.faces.Float.

Kelas BigDecimalConverter yang digunakan untuk menukar nilai rentetan input pengguna ke java.lang. Jenis nilai BigDecimal dan id conveternya ialah javax.faces.BigDecimal.

Kelas DoubleConverter yang digunakan untuk menukar nilai rentetan input pengguna ke java.lang. Jenis nilai berganda dan id conveternya ialah javax.faces.Double.

Kelas ByteConverter yang digunakan untuk menukar nilai rentetan input pengguna ke jenis nilai java.lang.Byte dan id conveter nya ialah javax.faces.Byte.

Kelas CharacterConverter yang digunakan untuk menukar nilai rentetan input pengguna kepada java.lang. Jenis aksara nilai dan id penukarnya ialah javax.faces.Character.

Kelas BooleanConverter yang digunakan untuk menukar nilai rentetan input pengguna kepada jenis nilai java.lang.Boolean dan id conveter nya ialah javax.faces.Boolean.

Kelas DateTimeConverter yang digunakan untuk menukar nilai rentetan input pengguna ke java.lang. Jenis nilai DateTime dan id conveternya ialah javax.faces.Datetime.

The EnumConverter class which uses to convert user input string values into java.lang. Enum type of values and its conveter id is javax.faces.Enum.

1. convertDateTime  Tag

The JSF convertDateTime contains the following attributes to convert the Date time format.

  • dateStyle – This attribute specifies the formatting style for the date of a date string is to be formatted.
  • locale – This attribute specifies to represent a date in Locale format.
  • pattern – This attribute specifies the formatting pattern to be the format.
  • timeStyle – This attribute specifies the Predefined formatting style for the date of a date string is to be formatted.
  • timeZone – This attribute specifies the Time zone for the date of a date string is to be formatted.
  • type – This attribute specifies the date or/and time or both to be formatted.

Example

<h:inputText id="DOB" label = "Date of Birth" value="#{bean.DOB }">
<f:convertDateTime pattern="dd/mm/yyyy" />
</h:inputText>

2. convertNumber Tag

The JSF convertNumber contains the following attributes to convert Number format. currencyCode – This attribute specifies to apply the currency format.

  • currencySymbol – This attribute specifies to apply the currency format.
  • groupingUsed – This attribute specifies whether the formatted output has grouping separators or not.
  • integerOnly – This attribute specifies whether only an integer part format or not.
  • locale – This attribute specifies to represent the number in Locale format.
  • minFractionDigits – This attribute specifies the minimum number of digits in the fractional part.
  • maxFractionDigits – This attribute specifies the maximum number of digits in the fractional part.
  • minIntegerDigits – This attribute specifies the minimum number of digits in the integer part.
  • maxIntegerDigits – This attribute specifies the maximum number of digits in the integer part.
  • pattern – This attribute specifies the formatting pattern to be the format.
  • type – This attribute specifies whether the type of number, percent and currency.

Example

<h:outputText value = "#{bean.height}">
<f:convertNumber maxFractionDigits = "1" />
</h:outputText>

Let’s see an example of the JSF project.

Create index.xhtml with the following code.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:form>
<h:outputLabel for="name">Name : </h:outputLabel>
<h:inputText id="name" value="#{Emp.name}"/><br/>
<h:outputLabel for="eid">Eid : </h:outputLabel>
<h:inputText id="eid" value="#{Emp.eid}">
<h:outputLabel for="sal">Salary : </h:outputLabel>
<h:inputText id="sal" value="#{Emp.sal}">
<f:converter converterId="javax.faces.Integer" />
</h:inputText><br/>
<h:commandButton action="disp.xhtml" value="Submit Query"/>
</h:form>
</html>

Create Emp.java class with the following code in the project.

package jsfp;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class Emp {
String name;
String eid;
int sal;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEid() {
return eid;
}
public void setEid(String eid) {
this.eid = eid;
}
public int getSal() {
return sal;
}
public void setSal(int sal) {
this.sal = sal;
}
}

Create disp.xhtml for the response with the following code.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>Reply Page</title>
</h:head>
<h:body>
<h:outputText value="Welcome #{Emp.name}. Your eid is #{Emp.eid}. Your Salary is #{Emp.sal}."/>
</h:body>
</html>

An output of the above project in the sequence is –

Penukar JSF

You fill the details as below –

Penukar JSF

Once you click the button the output is –

Penukar JSF

Conclusion

The user inputs are sent to the server using an http request in the form of the string, the request values to be processed first need to be transformed into the appropriate data types such as int, float, double, String, Boolean, date, and so on by using the JSF Converters of JSF framework.

Atas ialah kandungan terperinci Penukar JSF. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Teknologi J2EEArtikel seterusnya:Teknologi J2EE