(同一页面下增删改查的开发步骤.docx
文本预览下载声明
同一页面下增删改查的开发步骤准备工作动态页面已经做好,实体类已经创建完成。实现添加、修改使用不同panel修改实体类加入@Name注解添加action类,实现添加功能使用普通javabean,加入@Name注解,加入@Scope(ScopeType.PAGE),使用PAGE生命周期。声明控制panel显示的boolean类型值。声明实体类对象,对象使用@In(required=false) @Out(required=false)注解。加入添加按钮方法。要进行连续添加,所以要使用长会话。在打开添加panel的方法上加入@Begin注解。开启长会话。加入添加提交方法(添加panel的submit按钮)。提交后重新new一下此实体对象用于清空页面上输入的值。此方法不是@End方法。添加panel的cancel按钮没有后台方法,加入 oncomplete=Richfaces.showModalPanel(cancel);,打开一个modelpanel提示用户真的要退出么。在Action中加入退出添加panel的方法。此方法把控制添加panel的boolean值置false。重新渲染此区域。此方法要加入@End注解。用于结束长会话。实现修改功能声明控制panel显示的boolean类型值。声明实体类对象,对象使用@In(required=false) @Out(required=false)注解。加入修改按钮方法,要进行传值,所以要使用长会话,在打开修改panel的方法上加入@Begin注解,开启长会话。方法有参数。加入修改提交方法(修改panel的submit按钮)。此方法提交成功后会关闭panel。所以如果正常执行此方法,要关闭长会话。此处不能用@End注解。因为验证不通过,用户想继续修改信息,再进行提交。所以要使用Conversation API函数在正常流程中结束此长会话。Conversation conversation = Conversation.instance();conversation.end(true);Cancel按钮与添加功能的一样。实现删除功能加入删除按钮方法,要进行传值,所以要使用长会话,方法有参数。加入@Begin注解。加入modelpanel中点击删除确定的方法。此方法是结束长会话方法使用@End注解。onclick=Richfaces.hideModalPanel(del) 并且关闭modelpanel。页面实现使用a4j:outputpanel把添加和修改区域都包裹住。添加区域再使用一个outputpanel,修改区域使用一个outputpanel,两个outputpanel都定义rendered属性,用来实现其隐藏。a4j:outputPanel id=addPanelrendered=#{reasonCodesMaintainAction.addPanel} 把页面与后台值绑定。添加、修改使用同一panel修改实体类加入@Name注解添加action类,实现添加功能使用普通javabean,加入@Name注解,加入@Scope(ScopeType.PAGE),使用PAGE生命周期。声明控制panel显示的boolean类型值。声明显示提交添加按钮和修改按钮的boolean类型值,绑定到按钮的rendered属性。通过点击列表的添加按钮还是修改按钮来控制显示哪个按钮。声明实体类对象,对象使用@In(required=false) @Out(required=false)注解。加入添加按钮方法。要进行连续添加,所以要使用长会话。在打开添加panel的方法上加入@Begin注解。开启长会话。加入添加提交方法(添加panel的submit按钮)。提交后重新new一下此实体对象用于清空页面上输入的值。此方法不是@End方法。添加panel的cancel按钮没有后台方法,加入 oncomplete=Richfaces.showModalPanel(cancel);,打开一个modelpanel提示用户真的要退出么。在Action中加入退出添加panel的方法。此方法把控制添加panel的boolean值置false。重新渲染此区域。此方法要加入@End注解。用于结束长会话。实现修改功能与添加panel用的是同一个对话框绑定的是相同的后台变量。只要在点击修改按钮时,对绑定的变量进行赋值其它与在不同panel下进行修改时一样的。实现删除功能与不同panel下进行修改相同。补充在进行ajax局部刷新时,即使没有指定刷新被a4j:outputPanel ajaxRendered=true 包裹的部分,也会进行刷新,解决方法是在每个进行ajax刷新的标签上加入limitToList=true属性,此时如果没指定刷
显示全部