第十八讲:tapestry表单核心组件

源码如下:

InputCore.java

/**
* 项目名称:TapestryStart
* 开发模式:Maven+Tapestry5.x+Tapestry-hibernate+Mysql
* 版本:1.0
* 编写:飞风
* 时间:2012-02-29
*/
package com.tapestry.app.pages;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.internal.services.StringValueEncoder;
 
public class InputCore {
@Property
@SuppressWarnings("unused")
private StringValueEncoder stringEncoder = new StringValueEncoder();
 
/* Checkbox */
 
@Property
@SuppressWarnings("unused")
private boolean checkboxValue;
 
/* Checklist */
 
@Property
@SuppressWarnings("unused")
private List<String> checklistSelectedValues;
 
@Property
@SuppressWarnings("unused")
private final String[] STATIONERY = { "Pens", "Pencils", "Paper" };
 
/* DateField */
 
@Property
private Date dateValue;
 
// We could return a DateFormat, but instead we'll return a String which DateField will coerce into a DateFormat.
public String getDateFieldFormat() {
return "dd/MM/yyyy";
}
 
/* Palette */
 
@Property
private List<String> paletteSelectedValues;
 
@Property
@SuppressWarnings("unused")
private final String[] PETS = { "Dog", "Cat", "Parrot", "Mouse" };
 
/* Password */
 
@Property
@SuppressWarnings("unused")
private String passwordValue;
 
/* RadioGroup and Radio */
 
@Property
@SuppressWarnings("unused")
private String radioSelectedValue;
 
/* Select */
 
@Property
@SuppressWarnings("unused")
private String selectedValue;
 
/* TextArea */
 
@Property
@SuppressWarnings("unused")
private String textAreaValue;
 
/* TextField */
 
@Property
@SuppressWarnings("unused")
private String textValue;
 
/* Life-cycle stuff. Fields that are marked @Persist MUST be initialized here rather than where they are declared. */
 
void setupRender() {
if (dateValue == null) {
dateValue = new Date();
}
if (paletteSelectedValues == null) {
paletteSelectedValues = new ArrayList<String>();
}
}
}
 

InputCore.tml

<html t:type="layout" title="tapestryStart Index"  t:sidebarTitle="Framework Version"
 xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter">
<style type="text/css">
body { font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
form { text-align: center; }
table { font-family: Arial, Helvetica, sans-serif;  font-size: 13px; font-weight: normal; margin: auto; }
th { background-color: #bee; text-align: center; padding: 10px 10px; }
td { background-color: #eeb; padding: 10px 10px; }
td.name { text-align: right; vertical-align: top; }
div.t-palette { width: 460px; }
.datePicker td .topLabel { color:black; }
</style>
<form t:type="form" t:id="inputs">
<table>
<tr>
<th>Component Name</th>
<th>Use them and press Submit</th>
<th>Submitted Value</th>
</tr>
<tr>
<td class="name">Checkbox:</td>
<td><input t:type="checkbox" value="checkboxValue"/></td>
<td>${checkboxValue}</td>
</tr>
<tr>
<td class="name">Checklist:</td>
<td><input t:type="Checklist" t:model="stationery" t:selected="checklistSelectedValues" t:encoder="stringEncoder"/></td>
<td>${checklistSelectedValues}</td>
</tr>
<tr>
<td class="name">DateField:</td>
<td><input t:type="DateField" value="dateValue" t:format="prop:dateFieldFormat"/> (${dateFieldFormat})</td>
<td>${dateValue}</td>
</tr>
<tr>
<td class="name">Palette:</td>
<td><input t:type="Palette" t:model="pets" t:selected="paletteSelectedValues" t:encoder="stringEncoder"/></td>
<td>${paletteSelectedValues}</td>
</tr>
<tr>
<td class="name">PasswordField:</td>
<td><input t:type="PasswordField" value="passwordValue"/></td>
<td>${passwordValue}</td>
</tr>
<tr>
<td class="name">RadioGroup,<br/> Radio,<br/> and Label:</td>
<td>
<t:RadioGroup value="radioSelectedValue" encoder="stringEncoder">
<t:Radio t:id="radioH" value="literal:H" label="High"/><t:label for="radioH"/><br/>
<t:Radio t:id="radioM" value="literal:M" label="Medium"/><t:label for="radioM"/><br/>
<t:Radio t:id="radioL" value="literal:L" label="Low"/><t:label for="radioL"/>
</t:RadioGroup>
</td>
<td>${radioSelectedValue}</td>
</tr>
<tr>
<td class="name">Select:</td>
<td><select t:type="Select" t:model="literal:Ms,Mrs,Mr,Dr,Prof" t:value="selectedValue"/></td>
<td>${selectedValue}</td>
</tr>
<tr>
<td class="name">TextArea:</td>
<td><input t:type="TextArea" value="textAreaValue"/></td>
<td><t:textoutput value="textAreaValue"/></td>
</tr>
<tr>
<td class="name">TextField:</td>
<td><input t:type="TextField" value="textValue"/></td>
<td>${textValue}</td>
</tr>
</table><br/>
 
<input type="submit" value="Submit"/>
 
</form>
</html>

http://localhost/form/inputcore

转载于:https://my.oschina.net/shootercn/blog/53674

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值