public class RegditAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RegditForm regditForm = (RegditForm) form;
if(false){
return mapping.findForward("main");
}
else{
ActionMessages messages = new ActionMessages();
ActionMessage message = new ActionMessage("error.wrong");
messages.add("errorName",message);
this.saveMessages(request,messages);

return mapping.getInputForward();
}
}
}
这里我定义了error.wrong。
我希望的结果是:当用户输入错误,返回登录那页,然后提示资源里面error.wrong的句子
在返回的那页jsp中有<html:errors />这句代码。运行可以正确的返回到原来输入的页面,但是不能打出error.wrong的句子,请问怎么做才使之能显示出来?

解决方案 »

  1.   

    ActionMessage(java.lang.String key) 
    你的写法error.wrong是errorMessage的key
    但是在你的配置文件里又没有配置
    error.wrong=×××之类的东西所有
    而<html:errors />是取出所有的error message值 
    所以你就什么也取不到了 
      

  2.   


    我在ApplicationResources文件里面有一句:
    error.wrong=TEST WRONG!请问我要在 什么文件里面 怎么配置呢?
      

  3.   

    ……改好了 else{
    // ActionMessages messages = new ActionMessages();
    // ActionMessage message = new ActionMessage("error.wrong","useradd");
    // messages.add("errorName",message);
    // this.saveMessages(request,messages);
    ActionErrors errors =new ActionErrors();
    ActionError Error = new ActionError("error.wrong","useradd");
    errors.add("useradd",Error);
    this.saveErrors(request, errors);
    return mapping.getInputForward();
    }
    这样改了就可以了…… 谢谢
      

  4.   

    我还有个问题…… 是不是因为<html:errors /> 打印的是errors 
    而如果是this.saveMessages(request,messages);这样的话,是保存的messages而不是errors,所以打印不出来?
      

  5.   

    ActionErrors errorssaveErrors(request, erros)已经被声明过时了,应该用ActionMessages 然后 
    request.setAttribute("test", errors);然后在,在jsp前面
    <html:messages id="t1" name="test" message="false">
          <bean:write name="t1" />
    </html:messages>