密码不匹配应该是你action里抛出的错误,看看你的代码就知道。如果不性的话将form输出出来。如果不是你action抛出的错误,而是validate抛出的那就写的有问题了
validwhen只是做忽略判断,就是说当password2不等于当前值时才判断。
这里有两个地方可能导致问题:
1:((password2 ==*this*) and (*this* != null))
建议把判断非null的放在前面比较,就是
((*this* != null)and(password2 ==*this*))
2:看看你是否配置了password2的validate,如果没有的话也是会出问题的