`
esffor
  • 浏览: 1367711 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts中一起提交多个JSP中的表单

阅读更多

      如果需要提交的表单内容比较多,一个JSP页面不够用,就需要多个表单依次提交,最后一起汇总给
ActionServlet处理

   JSP1页面(其中hidden字段很重要,表示是第一个提交页面)
  
 <html>
     
<head>
     
<title>jsp1</title>
     
</head>
     
<body bgcolor="#ffffff">
     
<html:form action="/insertAction.do">
       
<html:hidden property="page" value="1"/>
       name:
<html:text property="name"/>
       pass:
<html:text property="password"/>
      
<html:submit>submit
     
</html:submit>
    
</html:form>
    
</body>
    
</html>

JSP2页面

 

     <html>
     
<head>
     
<title>jsp2</title> 
     
</head>
     
<body bgcolor="#ffffff">
     
<html:form action="/insertAction.do">
       
<html:hidden property="page" value="2"/>
       city:
<html:text property="city"/>
      
<html:submit>submit
     
</html:submit>
    
</html:form>
    
</body>
    
</html>

 

为两个页面建立共同的ActionForm,注意,scope要为session

 

public class InsertForm extends ActionForm ...{
    
private String name=null;
    
private String password=null;
    
private String city=null;
    
private String page=null;
    
public ActionErrors validate(ActionMapping actionMapping,
                                 HttpServletRequest  
                                 httpServletRequest) 
...{

        ActionErrors errors
=new ActionErrors();
        
int numpage=0;
        
try ...{
            numpage
=new Integer(page).intValue();
        }
 catch (Exception ex) ...{          
        }

        
if(numpage==1)...{
            
if((name==null)||(name.length()<1))...{
                errors.add(
"name",new ActionMessage("123"));
            }

            
if((password==null)||(password.length()<1))...{
                errors.add(
"password",new ActionMessage("123"));
            }

        }

        
if(numpage==2)...{
           
if((city==null)||(city.length()<1))...{
               errors.add(
"city",new ActionMessage("123"));
           }

       }

       
return errors;
    }

    
public void reset(ActionMapping actionMapping,
                      HttpServletRequest servletRequest) 
...{
        
int numpage=0;
        
try ...{
            numpage
=new Integer(servletRequest.getParameter
                   (
"page")).intValue();
        }
 catch (Exception ex) ...{  
        }

        
if(numpage==1)...{
            name
=null;
            password
=null;
        }

        
if(numpage==2)...{
            city
=null;
        }

    }

    
public String getCity() ...{
        
return city;
    }

    
public String getName() ...{
        
return name;
    }

    
public String getPage() ...{
        
return page;
    }

    
public String getPassword() ...{
        
return password;
    }

    
public void setPassword(String password) ...{
        
this.password = password;
    }

    
public void setPage(String page) ...{
        
this.page = page;
    }

    
public void setName(String name) ...{
        
this.name = name;
    }

    
public void setCity(String city) ...{
        
this.city = city;
    }

}


以上是两个html表单都对应I"nsertForm,在创建InsertForm时有以下几点需要注意
(1)提供html表单的隐藏字段page对应的page属性
(2)在reset方法中,只把和当前正在处理的表单相关的属性恢复为默认值
(3)在validate中,仅对和当前表单相关的属性进行验证
Struts-config.xml内容
<struts-config>
  
<form-beans>
    
<form-bean name="insertForm" type="untitled2.InsertForm" />
  
</form-beans>
  
<action-mappings>
    
<action input="/jsp1.jsp" name="insertForm" 
       parameter
="/jsp2.jsp" path="/insertAction" 
       scope
="session" 
       type
="org.apache.struts.actions.ForwardAction" 
       validate
="true" />
    
<action input="/jsp2.jsp" name="insertForm" 
       path
="/insertAction2" scope="session" 
       type
="untitled2.InsertAction2" validate="true" />
  
</action-mappings>
  
<message-resources parameter="ApplicationResources" />
</struts-config>

 

JSP1页面的action为/insertAction.do
JSP2页面的action为/insertAction2.do


分享到:
评论

相关推荐

    struts1.2 from表单提交包含list的对象

    对于包含列表的表单,用户可能需要在页面上输入多条数据,如一个订单中包含多个商品。每个商品项可能都有自己的属性,如商品ID、名称、数量等。在HTML表单中,这些数据可以通过数组或列表的格式来表示,比如`[0].id...

    Struts2解决表单重复提交

    在实现上,开发者可以在JSP表单页面中使用标签生成唯一的token标识,并在struts.xml文件中配置相应的token拦截器以及invalid.token结果视图。 在配置示例代码中,开发者需要在login.jsp页面中加入&lt;s:token&gt;&lt;/s:...

    struts2中token限制表单多次提交

    在开发Web应用时,防止表单的多次提交是一个常见的需求,这可能导致数据重复或者逻辑错误。Struts2提供了Token插件来解决这个问题,确保每个表单提交只能被执行一次。下面将详细阐述Struts2中Token机制的工作原理、...

    struts的表单验证

    综上所述,Struts的表单验证是其功能强大且不可或缺的一部分,它涉及到用户体验、数据安全和应用逻辑等多个方面。通过合理利用Struts提供的工具和机制,开发者可以创建出健壮且用户友好的Web应用。

    struts2批量提交数据

    批量提交是指一次性处理多个数据记录,而不是逐个处理。在Web应用中,这通常涉及到用户上传一个包含多条记录的数据文件,或者通过网页表单一次性输入多条数据。这种处理方式提高了数据处理效率,减少了网络通信次数...

    Struts之Token解决表单那重复提交

    客户端再次提交表单时,会将这个Token一起发送回服务器。服务器验证Token的有效性,如果已经使用过或者不存在,就拒绝处理请求,从而防止重复提交。 三、Struts中实现Token机制的步骤 1. **配置Action** 在Struts...

    struts token机制解决表单重复提交

    Struts Token机制是一种防止表单重复提交的有效策略,尤其在处理关键操作时,如金融交易或数据修改,防止用户意外或恶意多次点击提交按钮导致的数据重复性问题。下面将详细介绍Struts Token的工作原理、实现方式及其...

    Struts框架应用于jsp中

    Struts框架是Java Web开发中的一个关键组件,它在JSP(JavaServer Pages)基础上提供了一种更规范、更易维护的MVC(Model-View-Controller)架构。标题"Struts框架应用于jsp中"表明我们将探讨如何在JSP应用程序中...

    一个Struts1多文件上传实例(附Form中传List示例)

    表单中可以包含一个List类型的参数,允许用户输入多个值。在HTML中,这可以通过多次使用相同name属性的input元素实现。在Struts1中,ActionForm类需要有一个对应的List字段来接收这些值,这样在提交表单时,Struts1...

    struts2防止表单重复提交--重定向

    在Web开发中,表单重复提交是一个常见的问题,可能导致数据不一致或处理逻辑的混乱。Struts2提供了多种方法来防止这种情况,其中一种是通过重定向来实现。下面将详细解释Struts2如何通过重定向来防止表单重复提交。 ...

    struts中数据在action与jsp中的传递总结.pdf

    Struts 中数据在 Action 与 JSP 中的传递总结 Struts 框架中,数据在 Action 与 JSP 之间的传递是一种常见的需求。为了实现这种传递,Struts 提供了多种方式,本文将对这些方式进行总结。 方式一:通过 FormBean ...

    struts2实现的多个文件上传

    在Struts2的配置文件(通常是struts.xml)中,你需要为你的Action添加一个或多个action配置,指定处理文件上传的result类型。Struts2提供了一个特殊的`stream`结果类型,用于处理文件上传: ```xml ...

    Struts2多个文件上传

    在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

    struts2和jspServlet上传

    Struts2和JSP Servlet上传是Web开发中的常见场景,主要涉及如何在用户提交表单时处理文件上传请求。这两个技术都是Java Web开发的重要组成部分,Struts2是一个基于MVC设计模式的开源框架,而Servlet是Java EE规范的...

    struts2实现在jsp页面对员工的增删改查操作

    在这个实例中,“struts2实现在jsp页面对员工的增删改查操作”意味着我们将探讨如何使用Struts2框架来处理员工管理的基本功能,包括添加、删除、更新和查询员工信息,并在JSP页面上展示这些操作。 首先,我们需要...

    ajax+struts2.0+jsp下拉列表级联

    1. 创建JSP页面:在JSP中,你需要创建两个或者更多个下拉列表,并绑定AJAX事件监听器。当第一个下拉列表的值改变时,触发AJAX请求。 2. AJAX调用:使用JavaScript(例如jQuery库)编写AJAX代码,向服务器发送请求,...

    Struts2表单数据获取项目

    在处理表单数据时,你需要在这个文件中定义一个或多个动作类,这些类通常会继承自`ActionSupport`,并重写`execute()`方法。例如: ```xml &lt;result name="success"&gt;/success.jsp &lt;result name="input"&gt;/form.jsp...

    Struts iterator JSP Map 中嵌套 Map

    Struts迭代器(Iterator)在JSP中与Map的交互是一种常见的编程场景,尤其是在处理表单数据、展示复杂对象结构时。Struts2框架提供了一种便捷的方式,允许我们在JSP页面上遍历并显示存储在Map中的数据。这篇博客...

    基于Struts技术的jsp用户管理模块/绝对超值

    在这个基于Struts的JSP用户管理模块中,我们将会深入探讨如何利用Struts来实现用户登录功能,以及在MVC模式下各个组件的角色和交互。 首先,让我们理解MVC模式。Model代表应用程序的数据模型,处理业务逻辑和数据...

    解决在struts 中可以通过token 来重复提交的问题

    通过以上三个步骤,我们成功地实现了在Struts中通过Token来防止表单重复提交的功能。这种方法不仅提高了应用的安全性,还提升了用户体验。在实际项目开发过程中,还需要根据具体需求进一步完善和优化这一机制。

Global site tag (gtag.js) - Google Analytics