我的情况是这样的,有一个页面。页面初始化的时候有一个init.do对数据库进行检索。然后将检索出来的数据放入到A.jsp中的下拉列表当中。
   然后我在A.JSP中某一个文本框中输入一个非法内容(比如说长度过长),此处用的是struts的validator框架。
   Struts的验证框架将其拦截,然后根据配置文件中的input="/A.jsp",但验证返回后,我的下拉框中的内容都没有了。(下拉框中的内容从数据库取出来放入了request中,当然放入session中当然是没有问题的。但是程序设计要求不要放入session当中。)
   我的解决方法是将配置文件action中的input改为input="init.do",这样验证失败后,下拉框也可以有值了,但这样验证失败后还要再去重新访问数据库一次。从性能角度上来讲感觉有点不太好。
   请问有没有什么好的解决方法呀

解决方案 »

  1.   

    这个问题要嘛用struts的标签来实现,要嘛你自己手动将值通过request.getPrameter("")给注入进去,标签是帮你自动实现了的,看你自己选择
      

  2.   

     不是吧,Struts的标签是可以实现(比如输入框),但是Struts的下拉框的内容是不行的。
      

  3.   

    在action中定义一个全局变量集合存放下拉框中的内容从数据库取出来数据
    在action的构造方法中给集合赋值试试行不行
      

  4.   

    把select的值保存到request中,现在都流行用ajax验证
      

  5.   

    struts的标签语言<bean:write>就有这功能
      

  6.   

    验证出错返回的地方是JSP还是你那个读下拉框值的Action 一般情况下都是重新访问读取下拉框的Action再转发到你所谓的A.jsp的 不浪费资源 如果说你取消服务端验证的话就没事了
      

  7.   

    可以选择保存客户最后所选的值,也可以选择ajax,个人觉得ajax还是比较好的。