简单OA项目笔记(4):更新操作 (P-Action)
2012-11-13 19:36
357 查看
项目里的更新操作写的不赖,分为两步,解决了数据不同步的问题:
第一步:预处理:提取、编辑单个信息
第二步:把预处理的结果传给真正的执行者,修改保存
这个预处理有点意思,它把一个业务细分成俩个操作,第二个操作能根据处理结果返回到预处理的结果上继续修改,等于把一次update完完全全分成两个互不影响的操作了。
执行的数据流:
这个UpdatePUserAction挺有意思,经过它的预处理 看似麻烦了,其实把流程划分的清晰了很多
后一个user只有从jsp传来的id属性
前一个user是通过id查找到的完整的对象
跳转到新的 /update.jsp
这两个action多例就行了,没有其他特别的配置
这ID用户是不应该改的,所以表单中要用 hidden 传个隐藏值,其余就是正常输入
和昨天学的struts2的验证框架一样
执行的结果如果成功了,就重定向到ListUserAction
如果有误就去重新输入,之前预处理出来的结果也还都在
第一步:预处理:提取、编辑单个信息
第二步:把预处理的结果传给真正的执行者,修改保存
这个预处理有点意思,它把一个业务细分成俩个操作,第二个操作能根据处理结果返回到预处理的结果上继续修改,等于把一次update完完全全分成两个互不影响的操作了。
执行的数据流:
1.jsp提交要更改的id
<td><s:a href="updatePUser.action?user.id=%{#ul.id}">update</s:a>提交到UpdatePUserAction(注意有个“P”)
2.UpdatePUserAction
这是个预处理的action,P是perview的意思public String execute() throws Exception { user = this.service.findById(user.getId()); return SUCCESS; }
这个UpdatePUserAction挺有意思,经过它的预处理 看似麻烦了,其实把流程划分的清晰了很多
user = this.service.findById(user.getId());这的前后两个user不是一个对象:
后一个user只有从jsp传来的id属性
前一个user是通过id查找到的完整的对象
3.struts处理
UpdatePUserAction返回SUCCESS后跳转到新的 /update.jsp
<action name="updatePUser" class="updatePUserAction"> <result name="success">/update.jsp</result> </action>
这两个action多例就行了,没有其他特别的配置
<bean id="updatePUserAction" class="com.test.action.user.UpdatePUserAction" scope="prototype"> <property name="service" ref="userService"></property> </bean> <bean id="updateUserAction" class="com.test.action.user.UpdateUserAction" scope="prototype"> <property name="service" ref="userService"></property> </bean>
4.update.jsp
把表单提交到真正的 UpdateUserAction(不带P了)这ID用户是不应该改的,所以表单中要用 hidden 传个隐藏值,其余就是正常输入
<s:form action="updateUser"> <table> <tr> <td> <s:hidden name="user.id" value="%{user.id}"></s:hidden> </td> </tr>
5.struts验证
UpdateUserAction-validation.xml和昨天学的struts2的验证框架一样
6.UpdateUserAction
真正的执行,public String execute() throws Exception { this.service.update(user); return SUCCESS; }
执行的结果如果成功了,就重定向到ListUserAction
如果有误就去重新输入,之前预处理出来的结果也还都在
<action name="updateUser" class="updateUserAction"> <result name="success" type="redirect">listUser.action</result> <result name="input">/update.jsp</result> </action>
相关文章推荐
- 简单OA项目笔记(2):bean对象模型驱动多Action、每个Action单函数("redirect"、"prototype")
- OA项目笔记-从建立接口 dao impl action jsp等框架实现crud
- 简单OA项目笔记(1):MyEclipse添加SSH支持
- 简单OA项目笔记(3):Struts校验框架
- 简单OA项目笔记(5):生成、下载excel格式的动态表格(POI)
- 简单OA项目笔记(6):Ant+XDoclet
- php学习笔记(十七)简单的数据库操作链接
- go开源cache2go项目蛤蟆笔记——简单使用-
- mysql简单操作(实时更新)
- github上创建java项目简单操作
- MongoDB快速入门笔记(二)之MongoDB的概念及简单操作
- 简单加密壳项目笔记
- 简单Blog项目笔记之六:文章增删
- emacs 新手笔记(四) —— 使用 dired 完成一些简单的文件和目录操作
- windows文件操作简单笔记--发文于2013.9.16
- 项目管理---git----快速使用git笔记(七)------coding.net项目管理多人操作的流程规范--合并代码审核
- Scala学习笔记:数组操作与简单算法示例
- 【MongoDB学习笔记9】深入MongoDB的更新(update)操作:修改器$inc
- 安卓一款简单好用的版本更新项目
- 提交更新代码到github(简单个人项目)