[Tapestry5] Tapestry5自定义登陆组件时,登陆错误时的提示怎么显示在返回的登陆页面上
bianweiall
2012-09-09
想把登陆模块做成一个组件,做登陆页面时使用这个组件就可以了,当我点击登陆按钮后返回到登陆页面并且会有“用户名或密码错误!”的提醒,现在这个message传不过去值,不知道哪里错了!
组件类Login.java package com.bw.components; import javax.persistence.Query; import org.apache.tapestry5.annotations.Component; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.corelib.components.Errors; import org.apache.tapestry5.corelib.components.Form; import org.apache.tapestry5.corelib.components.TextField; import org.apache.tapestry5.ioc.annotations.Inject; import com.bw.entities.TUser; import com.bw.pages.Index; import com.bw.services.dao.jpa.AppJpaDAO; public class Login { @Property private TUser user; @Property private String message; @SuppressWarnings("unused") @SessionState private String userNameSSO; @Inject private AppJpaDAO dao; @SuppressWarnings("unused") @Component private Form form; @SuppressWarnings("unused") @Component private Errors errors; @SuppressWarnings("unused") @Component(parameters = { "value=user.name", "validate=required" }) private TextField userName; @SuppressWarnings("unused") @Component(parameters = { "value=user.password", "validate=required" }) private TextField userPassword; void onPrepare() { user = new TUser(); } String onPassivate() { return message; } void onActivate(String message) { this.message = message; } Object onSuccess() { String inName = user.getName(); String inPassword = user.getPassword(); String jpql = "select o from _user o where o.name=:param"; Query query = dao.findQuery(jpql); query.setParameter("param", inName); int rSize = query.getResultList().size(); if (rSize != 0) { user = (TUser) query.getResultList().get(0); if (rSize == 1 && user.getPassword().equals(inPassword)) { userNameSSO = user.getName(); return Index.class; } else { message = "用户名或秘密错误1!"; System.out.println(message); return com.bw.pages.user.Login.class; } } else { message = "用户名或秘密错误2!"; System.out.println(message); return com.bw.pages.user.Login.class; } } } 组件模版:Login.tml <html xmlns="http://www.w3.org/1999/xhtml" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter"> <p>${message}</p> <form t:id="form"> <p t:id="errors" /> <p> 用户名: <input type="text" t:id="userName" /> </p> <p> 密码: <input type="password" t:id="userPassword" /> </p> <p> <input type="submit" value="登陆" /> </p> </form> </html> 所用的页面类:Login.java package com.bw.pages.user; public class Login { } 页面模版:Login.tml <html t:type="layout" title="登陆" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter"> <t:login /> </html> |