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

📄 home.java

📁 典型实用的利用tapstry、spring、hibernate、框架的实例
💻 JAVA
字号:
/*
 * Created on 2004-10-30
 *
 * http://www.open-v.com 提供代码的维护工作
 */
package com.openv.spring.tapestry;

import com.openv.spring.domainmodel.UserInfoVO;
import com.openv.spring.service.IExample11Manager;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.Tapestry;
import org.apache.tapestry.event.PageEvent;
import org.apache.tapestry.event.PageRenderListener;
import org.apache.tapestry.form.IPropertySelectionModel;
import org.apache.tapestry.form.StringPropertySelectionModel;
import org.apache.tapestry.html.BasePage;
import org.apache.tapestry.valid.IValidationDelegate;

import org.springframework.dao.DataAccessException;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;


/**
 * Tapestry应用的首页
 *
 * @author luoshifei
 */
public abstract class Home extends BasePage implements PageRenderListener,
    IMessageProperty, IErrorProperty {
    private final static Log log = LogFactory.getLog(Home.class);

    public abstract void setMessage(String message);

    public abstract void setError(String error);

    public abstract void setInterestmodel(IPropertySelectionModel interestmodel);

    public abstract IPropertySelectionModel getInterestmodel();

    public abstract void setCountrymodel(IPropertySelectionModel countrymodel);

    public abstract IPropertySelectionModel getCountrymodel();

    public abstract IExample11Manager getExample11Service();

    public abstract UserInfoVO getUserinfoVO();

    public abstract void setUserinfoVO(UserInfoVO userinfoVO);

    /**
     * 实现PageRenderListener中定义的回调函数
     *
     * @param event
     */
    public void pageBeginRender(PageEvent event) {
        log.info("pageBeginRender().........");

        IPropertySelectionModel model = getInterestmodel();

        if (model == null) {
            model = buildInterestmodel();
            setInterestmodel(model);
        }

        model = getCountrymodel();

        if (model == null) {
            model = buildCountrymodel();
            setCountrymodel(model);
        }

        return;
    }

    /**
     * 处理表单的提交
     *
     * @param cycle
     */
    public void submitPersonInfo(IRequestCycle cycle) {
        log.info("submitPersonInfo()..............");

        IValidationDelegate delegate = (IValidationDelegate) getBeans().getBean("delegate");

        if (delegate.getHasErrors()) {
            return;
        }

        String password = getUserinfoVO().getPassword().trim();
        String repassword = getUserinfoVO().getRepassword().trim();

        if (!password.equals(repassword)) {
            IErrorProperty page = (IErrorProperty) cycle.getPage();
            page.setError(getMessage("password"));

            return;
        }

        boolean flag = this.getExample11Service().setUserInfo(getUserinfoVO());

        if (flag) {
            IMessageProperty page = (IMessageProperty) cycle.getPage();
            page.setMessage(getMessage("success") + ":" +
                getUserinfoVO().getUsername().trim());
            setUserinfoVO(new UserInfoVO());

            return;
        } else {
            IErrorProperty page = (IErrorProperty) cycle.getPage();
            page.setError(getMessage("failure") + ":" +
                getUserinfoVO().getUsername().trim());

            return;
        }
    }

    /**
     * 构建国家列表模型
     *
     * @return IPropertySelectionModel
     */
    private IPropertySelectionModel buildCountrymodel() {
        log.info("buildCountrymodel()............");

        String[] countrymodelStr;
        Locale[] locale = Locale.getAvailableLocales();
        List list = new ArrayList();

        for (int i = 0, k = locale.length; i < k; ++i) {
            if (Tapestry.isNonBlank(locale[i].getDisplayCountry())) {
                list.add(locale[i].getDisplayCountry());
            }
        }

        countrymodelStr = new String[list.size() + 1];
        countrymodelStr[0] = "";

        for (int i = 1, k = list.size() + 1; i < k; ++i) {
            countrymodelStr[i] = (String) list.get(i - 1);
        }

        return new StringPropertySelectionModel(countrymodelStr);
    }

    /**
     * 构建兴趣列表模型
     *
     * @return IPropertySelectionModel
     */
    private IPropertySelectionModel buildInterestmodel() {
        log.info("buildInterestmodel().............");

        String[] interestmodelStr;
        List list = null;

        try {
            list = getExample11Service().getInterests();
        } catch (DataAccessException ex) {
            log.error("访问数据库异常", ex);

            IErrorProperty page = (IErrorProperty) this.getRequestCycle()
                                                       .getPage();
            page.setError("访问数据库期间出现异常,请确保数据库成功创建和运行!");

            return new StringPropertySelectionModel(new String[] { "" });
        }

        interestmodelStr = new String[list.size()];

        for (int i = 0, k = list.size(); i < k; ++i) {
            if (Tapestry.isNonBlank((String) list.get(i))) {
                interestmodelStr[i] = (String) list.get(i);
            }
        }

        return new StringPropertySelectionModel(interestmodelStr);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -