如果需要提交的表单内容比较多,一个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
分享到:
相关推荐
它是开源框架:Struts 是 Apache 软件基金会资助的一个为开发基于MVC模式的Web应用而设计的一个开源框架.Struts框架中的各种Web组件:它是利用Servlet、JavaBean和JSP、定制标签库等Web组件、XML等方面的技术来实现...
原有的 java 四酷全书自带源码,使用struts1编写,很多功能不能使用,或有诸多问题,使用学习上极其不方便; 现在这个上传的源码,我断断续续历时一个月将其完全改为struts2编写,增加了几个原来不具有的功能,配好...
也可以使用validate框架进行验证,这个我觉得比Struts1.x方便了很多,但是有个问题一直困扰了我,直到现在有个小程序要用到这个方面的知识,那就是验证后如何很好地人性化地在jsp页面中显示了 说的通俗的一点就是...
但是你用模型驱动好吗,如果一个页面需要处理多个对象的时候怎么办。 如果你直接把属性写在action里面,当一个对象有20个属性的时候,你获取了属性还要set到对象里面去。20个属性,20个get/set方法。20行调用set方法...
4.分工合作include:指定多个配置文件 10 5.tomcat认证访问 10 6.初识拦截器 11 7.Action中的method属性 12 8.使用ForwardAction实现页面屏蔽。 13 8.使用default-Action配置统一访问 14 小结Action 14 9.使用通配符 ...
为了达成这一目标,Struts2中提供了很多新特性,比如智能的默认设置、annotation的使用以及“惯例重于配置”原则的应用,而这一切都大大减少了XML配置。Struts2中的Action都是POJO,这一方面增强了Action本身的可...
12.一个Action处理多个业务 method 35 13.使用校验模板校验 35 14.校验模板 35 15.文件上传 36 Struts2 UI tabbed pane tab pane datetime tree 37 SSH Struts+Spring+Hibernate整合 38 创建WEB工程 39 添加Struts...
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...
optgroup标签:生成一个下拉列表框的选择组,下拉列表框中可以包含多个选择组。 token标签:防用户多次提交表单。 textarea标签:文本域。 updownselct标签:支持选项内容的上下移动。 password表单:密码表单域...
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...
还有自我总结资料,放到下一个文件夹当中上传,这里压缩只有这么多了,希望能去下载,那个全部是文档。 国际化: Locales.java globalMessage_en_US.properties globalMessage_zh_CN.properties struts.properties ...
本书精选了230多个实用性很强的问题和常用需求,旨在帮助读者解决在JSP应用程序开发中经常遇到的实际问题,提高程序开发效率。本书内容涵盖了搭建开发环境、JSP基础知识、JavaBean高级应用、JSP高级组件、表单验证、...
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...
Struts原理、开发及项目实施 Holen 2002-9-12 <br/>1、 摘要 2、 关键词 3、 Framework 4、 Struts的起源 5、 Struts工作原理 6、 Struts安装 7、 一个实例 8、 Struts优缺点...
精选了230多个实用性很强的问题和常用需求,旨在帮助读者解决在JSP应用程序开发中经常遇到的实际问题,提高程序开发效率。内容涵盖了搭建开发环境、JSP基础知识、JavaBean高级应用、JSP高级组件、表单验证、文件处理...
12.5 上传多个文件示例 227 12.6 小结 230 第13章文件的下载 231 13.1 文件下载概述 231 13.2 Stream结果类型 232 13.3 文件下载功能的编程实现 235 13.4 小结 238 第14章提高Struts应用程序的安全性 239 ...
精选了230多个实用性很强的问题和常用需求,旨在帮助读者解决在JSP应用程序开发中经常遇到的实际问题,提高程序开发效率。内容涵盖了搭建开发环境、JSP基础知识、JavaBean高级应用、JSP高级组件、表单验证、文件处理...
自定表单 - 可以开设自定义表单栏目,自定义表单字段,管理提交的反馈信息 房产类型设置 - 添加和管理房产类型,和住宅、商铺、办公、厂房、仓库等五种不同的用途进行匹配设置 房产区域设置 - 设置本地房产区域,供...