forward到一个简单的jsp上面去不就成了?

解决方案 »

  1.   

    可以。
    在action的execute方法中使用如下代码来反馈信息:
    ActionMessages messages = new ActionMessages();
    messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("inputError"));
    saveMessages(request, messages);然后return mapping.findForward()到你的输入信息的那个jsp去。
    在jsp中用
    <logic:messagesPresent message="true">
        <html:messages id="message" message="true">
            <bean:write name="message"/>
        </html:messages>
    </logic:messagesPresent>
    来显示消息。需要注意的是messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("inputError"));
    中的inputError字符串是在struts的资源文件中定义好的标记/值对的标记名。你需要在资源文件中设置它,如果要显示中文,还要做一个中文资源文件。这些内容你可以参考《精通Struts:基于MVC的WEB应用》这本书,有详细描述。还有楼主你要做输入验证,其实可以不必到action中手动验证,struts集成了validation框架,只需要简单的配置一个xml文件,就能完成页面输入的数据校验了,可以参考相关的文章。
      

  2.   

    谢谢回复,不过我想通过查库来验证,所以得通过action,再以alert的方式提醒客户。
      

  3.   

    查库验证确实应该在action中完成,验证结果你仍然可以通过
    ActionMessages messages = new ActionMessages();
    messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("inputError"));
    saveMessages(request, messages);
    这样的形式回馈到jsp中,然后在jsp中用
    <logic:messagesPresent message="true">
        <html:messages id="message" message="true">
            <bean:write name="message"/>
        </html:messages>
    </logic:messagesPresent>
    来输出提示信息,只不过把上边的代码修改一下,变成
    <logic:messagesPresent message="true">
    <script language="javascript">
    <!--
    alert("<html:messages id='message' message='true'><bean:write name='message'/></html:messages>");
    -->
    </script>
    </logic:messagesPresent>
    这样的话,如果有信息反馈到jsp中,可以弹出一个警告框来显示信息了。
      

  4.   

    IceCraft(心淡情浓)的讲法我同意.
    我的主页:http://free2.e-168.cn/lovelyhome/index.jsp
      

  5.   

    顺便问一下。我试了“IceCraft(心淡情浓)”的方法
    但报错:"jsp1.jsp": org.apache.jasper.JasperException: No such tag messagesPresent in the tag library imported with prefix logic
    我用到
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    请问还要什么吗?
      

  6.   

    logic里有没有messagesPresent这个标签?
    忘了,你查查看
      

  7.   

    struts-logic.tld有messagesPresent这个标签的,看看你的里边有没有?没有的话再去搞一个
      

  8.   

    请问如果我要alert("系统名称不能为空"),针对“IceCraft(心淡情浓)”的方法,怎写呀,请告知!
      

  9.   

    你把配置文件中的inputError写成系统名称不能为空不就行了
      

  10.   

    alert("<html:messages id='message' message='true'>系统用户名密码不对</html:messages>");
    这样好像也行,嘻嘻,学习
      

  11.   

    针对“IceCraft(心淡情浓)”的方法,我的错误信息
    javax.servlet.ServletException: Cannot find bean message in any scope
     at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:471)
     at org.apache.jsp.jsp1$jsp._jspService(jsp1$jsp.java:170)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
     at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
    ...
    请教!!!!