基于Strut框架实现表单数据的展示与修改

实现思路1 : 2个Action连续跳转

实现流程图:

graph LR
Manager.jsp-->Display.Action
Display.Action-->Display.Jsp
Display.Jsp-->UpDate.Action
UpDate.Action-->提示结果

说明:
1. Manage.jsp 为管理列表页面,用于完成待修改项目的列表展示与待修改item关键字的提交
2. Display.Action 为跳转至展示页面的Action,用于完成将待修改item的关键字查询与bean构建
3. Display.Jsp 为兼有展示和修改功能的结果页面,同时提供修改值的提交功能
4. UpDate.Action 为待修改item的数据库更新实现后台

特点:
1. Action分工明确

注意:
1. 当执行update操作且记录主键为自增ID时,由于Display.jsp会向UpDate.Action提交一个新的Bean。因此提交的数据必须包含Id值,即使ID值在Display.jsp中不进行可视化展示。

实现思路2 : 1个Action不同的执行方法

实现流程图:

graph LR
Manager.jsp-->Display.Action!execute
Display.Action!execute-->Display.Jsp
Display.Jsp-->Display.Action!upDate
Display.Action!upDate-->提示结果

说明:
1. Manage.jsp 为管理列表页面,用于完成待修改项目的列表展示与待修改item关键字的提交,默认调用execute方法执行
2. Display.Action!execute 为跳转至展示页面的Action,用于完成将待修改item的关键字查询与bean构建
3. Display.Jsp 为兼有展示和修改功能的结果页面,同时提供修改值的提交功能
4. Display.Action!upDate 为待修改item的数据库更新实现后台,调用指定的upDate方法实现

特点:
1. 减少后台Action数量

注意:
1. 当Display.jsp请求执行Display.Action!upDate方法时,实际上Display.Action会被重新构建,因此Action中的bean实际当前提交数据而重新构建的,并不是execute方法执行后获取的,正确来是execute方法根本没有执行。
2. 当执行update操作且记录主键为自增ID时,由于Display.jsp会向Display.Action!upDate提交一个新的Bean。因此提交的数据必须包含Id值,即使ID值在Display.jsp中不进行可视化展示。

相关知识点
  1. Strut中标签只能用于结果值的展示,因此只有value属性,编写形式为bean.porpertyName 或者 (Action.)proertName
  2. Strut中标签即可用于结果展示又可用于结果提交,即同时具有value和name属性,而value属性编写形式为"%{bean.porpertyName}"或者"%{(Action.)porpertyName}"
  3. 对于不显示但需要提交的表单元素可以将父容器的样式属性进行不可见设置style="display:none"
扩充说明
若想在浏览Display.jsp页面时,通过后台代码实现标签的读写性控制

实现步骤:
1. 后台Display.action 中增加一个字段 private String IsReadOnly="true" 注意不是boolean类型
2. 为IsReadOnly字段添加getter,setter
3. 在请求Display.action的url中增加doGets参数
1. 只读:url/action : Display.action&IsReadOnly=true
2. 可写:url/action : Display.action&IsReadOnly=false
4. 在Display.jsp的标签中设置属性 readonly="%{IsReadOnly}"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值