⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 signup.page

📁 appfuse一套结合STRUTS+SPRING+HIBERNATE的框架
💻 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 + -