框架使用说明(shuo)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四.框架上下文(FRAMEFORM) 框架上下文(FRAMEFORM)
ACTIONFROM类
ActionFrom是框架中执行业务逻辑进行上下文数据传递的容器。里面包括了: 1、Application、Channel、Session、Request四个级别的变量。 对变量的赋值和取值调用ActionFrom的相关set和get函数,一般不能直接操作各个级 别的set和get方法。 系统赋值和取值的顺序是Application、Channel、Session、Request。 例如: 例如: public class T extends ActionInstance { public int execute(ActionForm af) throws Exception { af.getHttpRequest().setAttribute("参数", "值"); af.getHttpRequest().getAttribute("参数"); af.getHttpSession().setAttribute("参数", "值"); af.getHttpSession().getAttribute("参数"); return 1; } } 2、外部变量:request、response、HttpSession、Connnection 3、Hibernate的Session变量,在使用Hibernate时操作使用()
TAGLIB
FRAMEINI
FRAMEACTI ON
FRAMEFOR M
FRAMEDAO
CLASS1
ACTIOM1 DAO JSP、HTIML SERVLET ACTIOM2 CLASS3 CLASS2
JDBC
HIBERNATE
二.框架初始化(FRAMEINI) 框架初始化(FRAMEINI)
action加载
调度机制, 调度机制,变量周期处理
将request中数据元素放入框架数据上下文中,优化内存使 用,并发性能。 对每一个action视为一个事件,成功则提交,失败则回滚。 对全局变量生存周期进行管理
三.框架核心流程控制(ACTION) 框架核心流程控制(ACTION)
ACTION类
Action是一个完整的功能项表述,由4个部分组成。 例如: 例如: <Action name="SYS_LOGON"> <Description>系统登陆</Description> <Error>com.stframe.action.example.ErrorAction</Error> <Data> <Param name="goto">JSP/success.jsp</Param> </Data> <Model> <Step id="1">com.stframe.action.example.StartAction</Step> <Step id="2">com.stframe.action.example.EndAction</Step> </Model> <View> <To method="forward" code="0">JSP/frame/logon.jsp</To> </View> </Action>
ErrorModel 模块
包含出错后处理的类。 例如: 例如:
<Error>com.stframe.action.example.ErrorAction</Error> //<Error>Action出错执行的类</Error>
ViewModel 模块
包含模块执行后要访问的页面。 例如: 例如: <View> <To method="forward" code="1">/JSP/success.jsp</To> <To method="forward" code="0">/JSP/fail.jsp</To> </View> //<View> // <To method=“转发/重定向” code=“根据Model模块里执行到最 后 一个类的返回值,根据返回值执行对应的页面或类”> // 页面路径/类路径 // </To> //</View>
对变量的赋值和取值调用DataForm的相关set和get函数, 一般不能直接操作各个级别的set和get方法。 values 为Map型,保存相应数据表的数据 tablename 为表名 keyfield 为表的主键 cmd 为表的操作动作 A代表添加,U代表修改,D代表删除 例如: 例如: DataForm df=new DataForm("表名"," 表的主键"); new df.setCmd("表的操作动作");
方法三.changeKeyTypeValue 方法三.changeKeyTypeValue
changeKeyTypeValue,将DataForm中的类型转化数据库字段类型
例如: 例如: public class Test extends ActionInstance{ @Override public int execute(ActionForm af) throws Exception { ResultSet rset=null null; null String sql= "select * from USER"; Statement smt=null null; null try { smt=af.getConnection().createStatement(); rset=smt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } ResultSetMetaData rsmd=rset.getMetaData(); DataForm df=new DataForm(); new df.changeKeyTypeValue(rsmd); return 1; } }
所有action由xml配置出来,框架读取xml,通过 com.stframe.ini.actionini这个类加载action, 并将action放入内存中。 数据库配置加载,生成全局静态数据库连接配置。 对全局变量输出,及初始值进行配置
框架全局处理类
通过客户端发送action名,比对框架加载的action,相同则调用该action。 客户端: 在action=后面加上要访问的action名,提交表单时就会在对应的xml配置中找 要访问的action。 <form name="form1" action="<%=path%>/HttpService?action=TEST_ACTION "> 服务端xml配置: 当服务端收到从客户端发送的action名时,就会在xml配置中寻找对应的 action,相同则调用该路径中的action ,<Step>要访问的action路径</Step>。 <Action name="TEST_ACTION"> <Description>测试</Description> <Model> <Step id="1">com.boyang.TestAction</Step> </Model> <View> <To method="forward" code="1">/JSP/success.jsp</To> </View> </Action>
方法一.setValues 方法一.setValues
setValues,直接将request内容放入DataForm中, 支持多表。
例如: 例如: 注意:表单中元素的name要和数据库中的字段名相同。 public class Test extends ActionInstance { @Override public int execute(ActionForm af) throws Exception { DataForm df = new DataForm("STUDENT","ID"); df.setValues(af.getHttpRequest()); DaoUtil.insert(af.getConnection(), df); return 1; } }
ActionModel 模块
包含要处理的模块类,和执行顺序。 ActionModel中类按顺序执行,如果返回值是非0,则往下执行。 ActionModel中类如果返回值是0,或出现异常,则标记为错误,根据这个类的等 级判断是否继续执行。 例如: 例如: <Model> <Step id="1" errorDo="next">com.stframe.action.example.StartAction</Step> <Step id="2" errorDo="next">com.stframe.action.example.EndAction</Step> </Model> //<Model> // <Step id="执行顺序1">要处理的action路径</Step> // <Step id="执行顺序2">要处理的action路径</Step> //</Model> 执行完id=“执行顺序1”的类,如果返回值时非0,就接着执行id=“执行顺序2”的 类,否则根据这个类的等级判断是否继续执行。
DATAFORM
DATAFORM
DataForm是数据库表bean。数据库查询映射、数据库操作上下文。里面 包括了: 1、values,tablename,keyfield,cmd 四个变量 2、包含setValues,getListDF,changeKeyTypeValue这三个主要方法
四个变量
方法二.getListDF 方法二.getListDF
getListDF,将request中多条记录放入DataForm数组中
例如: 例如:
public class Test extends ActionInstance { @OverrideHale Waihona Puke Baidupublic int execute(ActionForm af) throws Exception { DataForm df= new DataForm("TEST"); DataForm dfarr[]=df.getListDF(af.getHttpRequest()); for(int for int i=0;i<dfarr.length;i++ ){ if(dfarr[i].getCmd() ==null null||"A".equals(dfarr[i].getCmd())){ if null dfarr[i].set("ID", GUIDKeyGen.getGUIDKey(af.getConnection())); } } DaoUtil.DFOperate(af.getConnection(), dfarr); return 1; } }
框架设计
( 编)
一.概要
说明
以MVC(Model-View-Controller)模式为基础, 以action 触发Controller改变Model或View,或者同时改变两者。
读者对象
架构师、系统分析员
框架结构
框架结构
主要分为五部分,frameini(初始化),frameaction (action实例,action调用机制)、actionfrom(上下 文)、framedao(数据库处理),taglib(标签处理)
Data模块 Data模块
包含初始化的变量,和变量周期。 例如: 例如: <Data> <Param name="goto">JSP/success.jsp</Param> </Data> //<Data> // <Param name="变量名">变量名对应的值</Param> //</Data>
ACTION实例 ACTION实例
ActionInstance定义好execute(ActionForm af)方法,其它 的class需要继承ActionInstance这个类。 例如: 例如:
public class Test extends ActionInstance { public int execute(ActionForm af) throws Exception { return 0; } }
相关文档
最新文档