📄 signup.page
字号:
<?xml version="1.0"?>
<!DOCTYPE page-specification PUBLIC
"-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
<page-specification class="org.appfuse.webapp.action.SignupForm">
<inject property="engineService" object="engine-service:page"/>
<inject property="mailMessage" type="spring" object="mailMessage"/>
<inject property="mailEngine" type="spring" object="mailEngine"/>
<inject property="request" object="service:tapestry.globals.HttpServletRequest"/>
<inject property="response" object="service:tapestry.globals.HttpServletResponse"/>
<inject property="roleManager" type="spring" object="roleManager"/>
<inject property="userManager" type="spring" object="userManager"/>
<bean name="delegate" class="org.appfuse.webapp.tapestry.ValidationDelegate"/>
<property name="user"/>
<property name="message" persist="flash"/>
<component id="signupForm" type="Form">
<binding name="delegate" value="ognl:beans.delegate"/>
<binding name="clientValidationEnabled" value="true"/>
</component>
<bean name="zipValidator" class="org.apache.tapestry.form.validator.Pattern">
<set name="pattern" value="literal:^\d{5}\d*$"/>
<set name="message" value="message:errors.zip"/>
</bean>
<component id="usernameField" type="TextField">
<binding name="value" value="user.username"/>
<binding name="validators" value="validators:required"/>
<binding name="displayName" value="message:user.username"/>
</component>
<component id="passwordField" type="TextField">
<binding name="hidden" value="true"/>
<binding name="value" value="user.password"/>
<binding name="validators" value="validators:required"/>
<binding name="displayName" value="message:user.password"/>
</component>
<component id="confirmPasswordField" type="TextField">
<binding name="hidden" value="true"/>
<binding name="value" value="user.confirmPassword"/>
<binding name="validators" value="validators:required"/>
<binding name="displayName" value="message:user.confirmPassword"/>
</component>
<component id="passwordHintField" type="TextField">
<binding name="value" value="user.passwordHint"/>
<binding name="validators" value="validators:required"/>
<binding name="displayName" value="message:user.passwordHint"/>
</component>
<component id="firstNameField" type="TextField">
<binding name="value" value="user.firstName"/>
<binding name="validators" value="validators:required"/>
<binding name="displayName" value="message:user.firstName"/>
</component>
<component id="lastNameField" type="TextField">
<binding name="value" value="user.lastName"/>
<binding name="validators" value="validators:required"/>
<binding name="displayName" value="message:user.lastName"/>
</component>
<component id="emailField" type="TextField">
<binding name="value" value="user.email"/>
<binding name="validators" value="validators:required,email"/>
<binding name="displayName" value="message:user.email"/>
</component>
<component id="phoneNumberField" type="TextField">
<binding name="value" value="user.phoneNumber"/>
<binding name="validators" value="validators:minLength=11"/>
<binding name="displayName" value="message:user.phoneNumber"/>
</component>
<component id="websiteField" type="TextField">
<binding name="value" value="user.website"/>
<binding name="validators" value="validators:required"/>
<binding name="displayName" value="message:user.website"/>
</component>
<component id="addressField" type="TextField">
<binding name="value" value="user.address.address"/>
</component>
<component id="cityField" type="TextField">
<binding name="value" value="user.address.city"/>
<binding name="validators" value="validators:required"/>
<binding name="displayName" value="message:user.address.city"/>
</component>
<component id="stateField" type="TextField">
<binding name="value" value="user.address.province"/>
<binding name="validators" value="validators:required"/>
<binding name="displayName" value="message:user.address.province"/>
</component>
<component id="postalCodeField" type="TextField">
<binding name="value" value="user.address.postalCode"/>
<binding name="validators" value="validators:required,$zipValidator"/>
<binding name="displayName" value="message:user.address.postalCode"/>
</component>
<!-- TODO: Validate this field -->
<component id="countryField" type="PropertySelection">
<binding name="model" value="countries"/>
<binding name="value" value="user.address.country"/>
<!-- Doesn't work -->
<!--message-binding name="displayName" key="user.address.country"/-->
</component>
</page-specification>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -