我有一个用户名和密码的登录程序,我现在想修改密码,我想在台的ACTION里和数据库验证原密码是否相等,如果不相同,就在密码修改的是页面上显示“原密码不相同,重新输入原密码‘,请问这个信息怎么返回啊,代码该怎么写啊?
我用的是STRUTS

解决方案 »

  1.   

    导入<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
    用这标签<html:errors property="name"/> 
    STRUTS有验证机制
      

  2.   

    在Form中的直接用errors.add("pwwrong",new ActionMessage("password.wrong"));就可以保存,然后在页面中用<html:errors/>输出就可以了 在Action中要添加错误信息的话需要 
    ActionMessages errors来新建errors,在用errors.add("pwwrong",new ActionMessage("password.wrong"));把需要添加的错误都添加完成后需要用super.save(request,errors)来保存,否则用<html:errors/>输出的时候就不会输出action中保存的错误信息 
    试下
      

  3.   

    举个例子:
    ActionForm中的validate方法
            public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {
                    ActionErrors errors=new ActionErrors();
                    if(name==null||name.length()==0){
                            errors.add("name",new ActionError("system.errors.null","name"));
                    }
                    if(password==null||password.length()==0){
                            errors.add("password",new ActionError("system.errors.null","password"));
                    }
                    if(sex==null||sex.length()==0){
                            errors.add("sex",new ActionError("system.errors.null","sex"));
                    }
                    if(age==0){
                            errors.add("age",new ActionError("system.errors.null","age"));
                    }
                    return errors;
            }在jsp页面,用<html:errors/>显示,当然你得先引入struts的标签库另外,struts1.2中不建议使用ActionError类而直接用它的父类ActionMessage代替
      

  4.   

    你可以在bean中定义一个字符窜,当发生错误时在action中给这个字符串赋值(就是你要打出来的消息),再用request返回到页面,jsp用<logic:present>来判断是否有这个值,有值的话就把消息打出来。没有值的话消息就不不打出来。
      

  5.   

    不一定要在validate里抛ActionMessages,业务逻辑的消息和错误信息也可以抛
      

  6.   

    Struts中ActionForm的验证机制一般来讲是不要用来验证业务逻辑的,如果把业务逻辑代码写在了ActionForm里面是违背了Struts的初衷。根据楼主的需求最好是用ajax来处理。这个即可以传回验证信息,也不会刷新页面。
      

  7.   

    楼上说的才是王道!!AJAX验证!!
      

  8.   

    java 初学者..过来看看..顶下
      

  9.   

    1楼 3楼 4楼说得很详细
    还要在ApplicationResources.properties中进行配置
    可以上网搜搜
    主要是使用ActionErrors(在ActionForm中)和ActionMessages(在Action中)抛出错误,然后用标签在前台显示
      

  10.   

    可以用STRUTS自带的错误返回 也可以用AJAX提交用户名和密码判断完之后返回个结果再由JS提示错误。。
      

  11.   

    struts的验证机制  好好学下  就知道怎么整了
    一句两句说不清楚
      

  12.   

    你在Action中加这么个方法,(或者写个AbstractAction,加入这个方法,让Action继承AbstractAction)
    protected void saveDirectlyError(HttpServletRequest request, String message) {
    ActionMessages errors = new ActionMessages();

    errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(message,false));
    saveErrors(request, errors);
    }
    然后在你Action的方法判断中加入:
    this.saveDirectlyError(request, "您已经处理登陆状态,请不要再次登陆!");
    页面上:
    <html:messages id="msg" message="false">
                   <bean:write name="msg"/>
    </html:messages>
      

  13.   

    最简单的,做一个判断,放request里面返回jsp页面
      

  14.   

    呵呵 ,那如果使用struts2呢,怎么使用?