我把问题简化了,就是在actionform中的validate()方法中是public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors=new ActionErrors();
errors.add("username",new ActionMessage("没有选择列为group by"));
return errors;
}在jsp页面中是<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
 
<html> 
<head>
<title>JSP for ZzzzForm form</title>
</head>
<body>
<html:form action="/zzzz">
pwd : <html:text property="pwd"/><html:errors property="pwd"/><br/>
username : <html:text property="username"/><html:errors property="username"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
validate肯定会返回错误,可是错误不会显示在页面上,为什么啊?

解决方案 »

  1.   

    在jsp上加上<html:errors />
      

  2.   

    不行啊而且我页面用上了
    ><html:errors property="username"/>不是也一样
      

  3.   

    你的validate里没有判断阿,你直接就抛message出来,应该是在没有选择的情况下才抛message出来啊,怎么也得有个if吧。
      

  4.   

    if ((userName == null) || (userName.length() == 0)) {
    this.reset(mapping, request);
    errors.add("username", new ActionMessage("hello.no.username.error"));

    你再改下看看行不行
      

  5.   

    你的struts是1.1 的吧,换成1.2的应该就好了
      

  6.   

    你的<html:errors />写在了text框后面,最直接的应该就是判断是否为空。是这意思吧。
    就算你是测试,如果你不写判断,你的text框里有值,难道你也让validate抛message?
    那你这种测试有什么意义呢?
      

  7.   

    没有写message啊,没有当然不会显示错误信息啦