📄 signup.page
字号:
<?xml version="1.0"?>
<!DOCTYPE page-specification PUBLIC
"-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<page-specification class="org.appfuse.webapp.action.SignupForm">
<bean name="delegate" class="org.appfuse.webapp.action.Validator"/>
<bean name="requiredValidator" class="org.apache.tapestry.valid.StringValidator">
<set-property name="required" expression="true"/>
<set-property name="clientScriptingEnabled" expression="true"/>
</bean>
<bean name="zipValidator" class="org.apache.tapestry.valid.PatternValidator">
<set-property name="patternString">"\\d{5}(-\\d{4})?"</set-property>
<set-property name="required" expression="true"/>
<!-- TODO: Read this message from i18n -->
<set-property name="patternNotMatchedMessage">"Invalid zip code."</set-property>
<set-property name="clientScriptingEnabled" expression="true"/>
</bean>
<bean name="phoneValidator" class="org.apache.tapestry.valid.StringValidator">
<set-property name="required" expression="true"/>
<set-property name="minimumLength" expression="11"/>
<set-property name="clientScriptingEnabled" expression="true"/>
</bean>
<bean name="emailValidator" class="org.apache.tapestry.valid.EmailValidator">
<set-property name="clientScriptingEnabled" expression="true"/>
<set-property name="minimumLength" expression="8"/>
<set-property name="required" expression="true"/>
<set-property name="clientScriptingEnabled" expression="true"/>
</bean>
<property-specification name="user" type="org.appfuse.model.User"/>
<property-specification name="userManager" type="org.appfuse.service.UserManager">
global.appContext.getBean("userManager")
</property-specification>
<property-specification name="roleManager" type="org.appfuse.service.RoleManager">
global.appContext.getBean("roleManager")
</property-specification>
<component id="usernameField" type="ValidField">
<binding name="value" expression="user.username"/>
<binding name="validator" expression="beans.requiredValidator"/>
<message-binding name="displayName" key="user.username"/>
</component>
<component id="passwordField" type="ValidField">
<binding name="hidden" expression="true"/>
<binding name="value" expression="user.password"/>
<binding name="validator" expression="beans.requiredValidator"/>
<message-binding name="displayName" key="user.password"/>
</component>
<component id="confirmPasswordField" type="ValidField">
<binding name="hidden" expression="true"/>
<binding name="value" expression="user.confirmPassword"/>
<binding name="validator" expression="beans.requiredValidator"/>
<message-binding name="displayName" key="user.confirmPassword"/>
</component>
<component id="firstNameField" type="ValidField">
<binding name="value" expression="user.firstName"/>
<binding name="validator" expression="beans.requiredValidator"/>
<message-binding name="displayName" key="user.firstName"/>
</component>
<component id="lastNameField" type="ValidField">
<binding name="value" expression="user.lastName"/>
<binding name="validator" expression="beans.requiredValidator"/>
<message-binding name="displayName" key="user.lastName"/>
</component>
<component id="cityField" type="ValidField">
<binding name="value" expression="user.address.city"/>
<binding name="validator" expression="beans.requiredValidator"/>
<message-binding name="displayName" key="user.address.city"/>
</component>
<component id="stateField" type="ValidField">
<binding name="value" expression="user.address.province"/>
<binding name="validator" expression="beans.requiredValidator"/>
<message-binding name="displayName" key="user.address.province"/>
</component>
<!-- TODO: Validate this field -->
<component id="countryField" type="PropertySelection">
<binding name="model" expression="countries"/>
<binding name="value" expression="user.address.country"/>
<!-- Doesn't work -->
<!--message-binding name="displayName" key="user.address.country"/-->
</component>
<component id="addressField" type="TextField">
<binding name="value" expression="user.address.address"/>
</component>
<component id="postalCodeField" type="ValidField">
<binding name="value" expression="user.address.postalCode"/>
<binding name="validator" expression="beans.zipValidator"/>
<message-binding name="displayName" key="user.address.postalCode"/>
</component>
<component id="emailField" type="ValidField">
<binding name="value" expression="user.email"/>
<binding name="validator" expression="beans.emailValidator"/>
<message-binding name="displayName" key="user.email"/>
</component>
<component id="phoneNumberField" type="TextField">
<binding name="value" expression="user.phoneNumber"/>
<binding name="validator" expression="beans.phoneValidator"/>
</component>
<component id="websiteField" type="ValidField">
<binding name="value" expression="user.website"/>
<binding name="validator" expression="beans.requiredValidator"/>
<message-binding name="displayName" key="user.website"/>
</component>
<component id="passwordHintField" type="ValidField">
<binding name="value" expression="user.passwordHint"/>
<binding name="validator" expression="beans.requiredValidator"/>
<message-binding name="displayName" key="user.passwordHint"/>
</component>
</page-specification>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -