Formlar ve Doğrulama Bileşenleri
Form Componentkullanıcı girişi için goblen sayfasında bir form oluşturmak için kullanılır. Bir form, metin alanları, tarih alanları, onay kutusu alanları, seçim seçenekleri, gönder düğmesi ve daha fazlasını içerebilir.
Bu bölüm, bazı önemli form bileşenlerini ayrıntılı olarak açıklamaktadır.
Onay Kutusu Bileşeni
Birbirini dışlayan iki seçenek arasında seçim yapmak için bir Onay Kutusu Bileşeni kullanılır. Aşağıda gösterildiği gibi Onay Kutusunu kullanarak bir sayfa oluşturun -
Checkbox.java
package com.example.MyFirstApplication.pages;
import org.apache.tapestry5.annotations.Property;
public class Checkbox {
@Property
private boolean check1;
@Property
private boolean check2;
}
Şimdi karşılık gelen bir şablon oluşturun Checkbox.tml aşağıda gösterildiği gibi -
<html t:type = "newlayout" title = "About MyFirstApplication"
xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p = "tapestry:parameter">
<h3> checkbox component</h3>
<t:form>
<t:checkbox t:id = "check1"/> I have a bike <br/>
<t:checkbox t:id = "check2"/> I have a car
</t:form>
</html>
Burada, onay kutusu parametre kimliği karşılık gelen Boole değeriyle eşleşir.
Result - http: // localhost: 8080 / myFirstApplication / checkbox sayfasını talep ettikten sonra aşağıdaki sonucu verir.
TextField Bileşeni
TextField bileşeni, kullanıcının tek bir metin satırını düzenlemesine olanak tanır. Bir sayfa yaratText Aşağıda gösterildiği gibi.
Text.java
package com.example.MyFirstApplication.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.TextField;public class Text {
@Property
private String fname;
@Property
private String lname;
}
Ardından, aşağıda gösterildiği gibi uygun bir şablon oluşturun - Text.tml
<html t:type = "newlayout" title = "About MyFirstApplication"
xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p = "tapestry:parameter">
<p> Form application </p>
<body>
<h3> Text field created from Tapestry component </h3>
<t:form>
<table>
<tr>
<td>
Firstname: </td> <td><t:textfield t:id = "fname" />
</td>
<td>Lastname: </td> <td> <t:textfield t:id = "lname" /> </td>
</tr>
</table>
</t:form>
</body>
</html>
Buradaki Metin sayfası, fname ve lname. Bileşen kimliklerine özellikler tarafından erişilir.
Sayfayı talep etmek aşağıdaki sonucu verecektir -
http://localhost:8080/myFirstApplication/Text
PasswordField Bileşeni
PasswordField, parola için özel bir metin alanı girişidir. Aşağıda gösterildiği gibi bir sayfa şifresi oluşturun -
Password.java
package com.example.MyFirstApplication.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.PasswordField;
public class Password {
@Property
private String pwd;
}
Şimdi, aşağıda gösterildiği gibi ilgili bir şablon dosyası oluşturun -
Password.tml
<html t:type = "newlayout" title = "About MyFirstApplication"
xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p = "tapestry:parameter">
<p> Form application </p>
<h3> Password field created from Tapestry component </h3>
<t:form>
<table>
<tr>
<td> Password: </td>
<td><t:passwordfield t:id = "pwd"/> </td>
</tr>
</table>
</t:form>
</html>
Burada, PasswordField bileşeni, özelliği gösteren parametre kimliğine sahiptir. pwd. Sayfayı talep etmek aşağıdaki sonucu verecektir -
http://localhost:8080/myFirstApplication/Password
TextArea Bileşeni
TextArea bileşeni, çok satırlı bir giriş metni denetimidir. Aşağıda gösterildiği gibi bir TxtArea sayfası oluşturun.
TxtArea.java
package com.example.MyFirstApplication.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.TextArea;
public class TxtArea {
@Property
private String str;
}
Ardından, aşağıda gösterildiği gibi ilgili bir şablon dosyası oluşturun.
TxtArea.tml
<html t:type = "newlayout" title = "About MyFirstApplication"
xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p = "tapestry:parameter">
<h3>TextArea component </h3>
<t:form>
<table>
<tr>
<td><t:textarea t:id = "str"/>
</td>
</tr>
</table>
</t:form>
</html>
Burada, TextArea bileşen parametresi kimliği "str" özelliğine işaret eder. Sayfayı talep etmek aşağıdaki sonucu verecektir -
http://localhost:8080/myFirstApplication/TxtArea**
Bileşen Seçin
Select bileşeni, seçeneklerden oluşan bir açılır liste içerir. Bir sayfa oluşturun Aşağıda gösterildiği gibi Seçenek'i seçin.
SelectOption.java
package com.example.MyFirstApplication.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.Select;
public class SelectOption {
@Property
private String color0;
@Property
private Color1 color1;
public enum Color1 {
YELLOW, RED, GREEN, BLUE, ORANGE
}
}
Ardından, aşağıdaki gibi uygun bir şablon oluşturun -
SelectOption.tml
<html t:type = "newlayout" title = "About MyFirstApplication"
xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p = "tapestry:parameter">
<p> Form application </p>
<h3> select component </h3>
<t:form>
<table>
<tr>
<td> Select your color here: </td>
<td> <select t:type = "select" t:id = "color1"></select></td>
</tr>
</table>
</t:form>
</html>
Burada, Select bileşeninin iki parametresi vardır -
Type - Özelliğin türü bir numaralandırmadır.
Id - Kimlik, "color1" Tapestry özelliğine işaret eder.
Sayfayı talep etmek aşağıdaki sonucu verecektir -
http://localhost:8080/myFirstApplication/SelectOption
RadioGroup Bileşeni
RadioGroup bileşeni, Radyo bileşenleri için bir kap grubu sağlar. Radio ve RadioGroup bileşenleri, bir nesnenin bir özelliğini güncellemek için birlikte çalışır. Bu bileşen, diğer Radyo bileşenlerinin etrafına sarılmalıdır. Aşağıda gösterildiği gibi yeni bir "Radiobutton.java" sayfası oluşturun -
Radiobutton.java
package com.example.MyFirstApplication.pages;
import org.apache.tapestry5.PersistenceConstants;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
public class Radiobutton {
@Property
@Persist(PersistenceConstants.FLASH)
private String value;
}
Ardından, aşağıda gösterildiği gibi ilgili bir şablon dosyası oluşturun -
Radiobutton.tml
<html t:type = "Newlayout" title = "About MyFirstApplication"
xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p = "tapestry:parameter">
<h3>RadioGroup component </h3>
<t:form>
<t:radiogroup t:id = "value">
<t:radio t:id = "radioT" value = "literal:T" label = "Male" />
<t:label for = "radioT"/>
<t:radio t:id = "radioF" value = "literal:F" label = "Female"/>
<t:label for = "radioF"/>
</t:radiogroup>
</t:form>
</html>
Burada, RadioGroup bileşen kimliği "değer" özelliğiyle bağlanır. Sayfanın talep edilmesi aşağıdaki sonucu verecektir.
http://localhost:8080/myFirstApplication/Radiobutton
Bileşeni Gönder
Bir kullanıcı bir gönder düğmesini tıkladığında, form, etiketin işlem ayarında belirtilen adrese gönderilir. Bir sayfa yaratSubmitComponent Aşağıda gösterildiği gibi.
package com.example.MyFirstApplication.pages;
import org.apache.tapestry5.annotations.InjectPage;
public class SubmitComponent {
@InjectPage
private Index page1;
Object onSuccess() {
return page1;
}
}
Şimdi, aşağıda gösterildiği gibi ilgili bir şablon dosyası oluşturun.
SubmitComponent.tml
<html t:type = "newlayout" title = "About MyFirstApplication"
xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p = "tapestry:parameter">
<h3>Tapestry Submit component </h3>
<body>
<t:form>
<t:submit t:id = "submit1" value = "Click to go Index"/>
</t:form>
</body>
</html>
Burada Gönder bileşeni, değeri Dizin sayfasına gönderir. Sayfayı talep etmek aşağıdaki sonucu verecektir -
http://localhost:8080/myFirstApplication/SubmitComponent
Form Doğrulama
Form doğrulama, normalde, müşteri gerekli tüm verileri girdikten ve ardından formu gönderdikten sonra sunucuda gerçekleşir. İstemci tarafından girilen veriler yanlışsa veya eksikse, sunucunun tüm verileri istemciye geri göndermesi ve formun doğru bilgilerle yeniden gönderilmesini istemesi gerekir.
Doğrulama sürecini anlamak için aşağıdaki basit örneği ele alalım.
Bir sayfa yarat Validate Aşağıda gösterildiği gibi.
Validate.java
package com.example.MyFirstApplication.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.PersistenceConstants;
import org.apache.tapestry5.annotations.Persist;
public class Validate {
@Property
@Persist(PersistenceConstants.FLASH)
private String firstName;
@Property
@Persist(PersistenceConstants.FLASH)
private String lastName;
}
Şimdi, aşağıda gösterildiği gibi ilgili bir şablon dosyası oluşturun.
Validate.tml
<html t:type = "newlayout" title = "About MyFirstApplication"
xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p = "tapestry:parameter">
<t:form>
<table>
<tr>
<td><t:label for = "firstName"/>:</td>
<td><input t:type = "TextField" t:id = "firstName"
t:validate = "required, maxlength = 7" size = "10"/></td>
</tr>
<tr>
<td><t:label for = "lastName"/>:</td>
<td><input t:type = "TextField" t:id = "lastName"
t:validate = "required, maxLength = 5" size = "10"/></td>
</tr>
</table>
<t:submit t:id = "sub" value =" Form validation"/>
</t:form>
</html>
Form Doğrulaması aşağıdaki önemli parametrelere sahiptir -
Max - maksimum değeri tanımlar, örneğin = «maksimum değer, 20».
MaxDate- maxDate'i tanımlar, örneğin = «maksimum tarih, 06/09/2013». Benzer şekilde, MinDate'i de atayabilirsiniz.
MaxLength - örneğin = «maksimum uzunluk, 80» için maxLength.
Min - minimum.
MinLength - örneğin = «minimum uzunluk, 2» için minimum Uzunluk.
Email - Standart e-posta regexp ^ \ w [._ \ w] * \ w @ \ w [-._ \ w] * \ w \. \ W2,6 $ veya hiçbiri kullanan e-posta doğrulaması.
Sayfayı talep etmek aşağıdaki sonucu verecektir -
http://localhost:8080/myFirstApplication/Validate