SAPUI5 (07) - MVC文件的名称和位置
来源:互联网 发布:5118的子域名查询工具 编辑:程序博客网 时间:2024/06/05 22:41
使用MVC,model, view和controller的代码被分割放在不同的文件中,那么,sapui5如何确定view和controller的文件的名称和位置呢? 有以下三种方法来声明文件的位置:
- sap.ui.localResources()
- jQuery.sap.registerModulePath()
- bootstrap声明: data-sap-ui-resourceroots=’{“name”: “”}’
sap.ui.localResources()
在SAPUI5中,controller和view使用与module相同的名称进行定义和实例化。默认情况下,所有的文件都位于Web Application下的子文件夹resources文件夹下。如果开发人员想自己决定文件的位置,则要使用上面三种方法之一进行配置。如果我们注视掉sap.ui.localResources()
语句,运行时,提示以下错误(我使用的是Chrome浏览器)
sap.ui.localResources()语法:
sap.ui.localResources(sModuleNamePrefix);
将sModuleNamePrefix注册为html文件(比如index.html作为当前文件夹)下sModuleNamePrefix子文件夹。如果sModuleNamePrefix中含有点号,所有的点被替换成/
。比如,view name为master,如果sap.ui.localResources("myapp.viewsforbutton");
,则sapui在./myapp/viewforbutton
文件夹下查找view文件的代码。文件的扩展名由view的类型决定。
jQuery.sap.registerModulePath()
jQuery.sap.registerModulePath(sModuleNamePrefix, sURL);
把sModuleNamePrefix注册为sURL,比如:jQuery.sap.registerModulePath("mainview", "./mainview/");
把mainview注册为当前文件夹下的mainview文件夹。
这种方法能实现sap.ul.localResources()相同的功能,但更加灵活。
bootstrap申明resourcesroots
下面的声明实现上述同样功能。
<script src="resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-libs="sap.m" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-resourceroots='{"mainview" : "./mainview/"}'></script>
指定view和controller的文件位置示例
在Eclipse中,通过File -> New -> Other -> SAPUI5 Application Development -> New View方式创建View,view和controller位于同一个文件夹下,一般情况下,这种位置安排做够而且挺方便的。如果我们想把View和Controller放在不同的文件夹下,该怎么做呢?
我们以WebContent文件夹为基础,在WebContent文件夹下创建buttondemo子文件夹,然后在buttondemo文件夹下创建view和controller两个文件夹,分别放置view的文件和controller的文件。最终的文件夹结构如下:
选中buttondemo文件夹,通过菜单:File -> New -> Other -> SAPUI5 Application Development
点击Next按钮,Development Paradigm选择JavaScript, View name输入为buttondemo,然后点击Finish。
这个时候,Eclipse将buttondemo.view.js和buttomdemo.controller.js两个文件都放在同一个文件夹下面。将buttomdemo.controller.js文件移到WebContent/buttondemo/controller文件夹下。
为了让sapui5能找到相关文件,我们需要对代码做如下几个变更。
1) 在index.html文件中申明buttondemo文件夹的位置。将buttondemo注册为当前文件夹下的buttondemo文件夹。
<script src="resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-libs="sap.m" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-resourceroots='{"buttondemo":"./buttondemo"}'> </script>
2)index.html文件中申明一个jsview,view name为buttondemo.view.buttondemo。这样sapui5就在./buttondemo/view文件夹下查找buttondemo.view.js文件。注意viewname: "buttondemo.view.buttondemo"
中最后一个buttondemo对应view代码文件的名称。
<script> // sap.ui.localResources("zsapui5_button_mvc"); var app = new sap.m.App({initialPage:"masterpage"}); var page = sap.ui.view({ id:"masterpage", viewName:"buttondemo.view.buttondemo" type: "JS"}); app.addPage(page); app.placeAt("content");</script>
3) 将buttondemo.view.js文件的getControllerName函数的buttomdemo.view.buttondemo修改为buttomdemo.controller.buttondemo。因为buttondemo被注册为index.html文件所在文件夹下的buttondemo,所以sapui5在buttondemo下controller文件夹下查找buttondemo.controller.js文件。
getControllerName : function() { return "buttondemo.controller.buttondemo"; },
4) 将buttondemo.controller.js文件中`sap.ui.controller()的第一个参数变更为“buttondemo.controller.buttondemo”,从而与其它代码对应。
最后贴出完整代码:
index.html
<!DOCTYPE HTML><html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/> <script src="resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-libs="sap.m" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-resourceroots='{"buttondemo":"./buttondemo"}'> </script> <script> // sap.ui.localResources("zsapui5_button_mvc"); var app = new sap.m.App({initialPage:"masterpage"}); var page = sap.ui.view({ id:"masterpage", viewName:"buttondemo.view.buttondemo" type: "JS"}); app.addPage(page); app.placeAt("content"); </script> </head> <body class="sapUiBody sapUiResponsiveMargin" role="application"> <div id="content"></div> </body></html>
buttomdemo.view.js
sap.ui.jsview("buttondemo.view.buttondemo", { /** Specifies the Controller belonging to this View. * In the case that it is not implemented, or that "null" is returned, this View does not have a Controller. * @memberOf buttondemo.view.buttondemo */ getControllerName : function() { return "buttondemo.controller.buttondemo"; }, /** Is initially called once after the Controller has been instantiated. It is the place where the UI is constructed. * Since the Controller is given to this method, its event handlers can be attached right away. * @memberOf buttondemo.view.buttondemo */ createContent : function(oController) { var oButton = new sap.m.Button({ text: "Please click.", press: oController.onButtonPressed }); return oButton; }});
buttondemo.controller.js
sap.ui.controller("buttondemo.controller.buttondemo", { onButtonPressed: function() { alert("Hello"); }});
- SAPUI5 (07) - MVC文件的名称和位置
- SAPUI5 (08) - MVC的Model和数据绑定
- oracle 10g 获得dump文件的名称和位置
- c# 获取桌面图标的位置和名称
- SAPUI5 (06) - MVC基础
- python的位置参数和名称参数的包装注意事项
- 改变 vfp 可执行文件的运行库位置和名称
- Qt 获取文件的名称和路径
- Qt 获取文件的名称和路径
- spring mvc上传文件以及把上传的文件的名称改成在名称后面加上时间后缀
- C#获得桌面图标名称和位置
- SAPUI5
- android 一些文件的位置和作用
- window和linux的hosts文件位置
- elasticsearch jks文件的位置和使用
- gnuplot 设置坐标轴名称的位置
- 帝国cms在任意位置调用指定id的栏目名称和链接
- MVC中异常的位置
- A1028. 选择计算
- bat-2
- android在手机桌面弹出一个提醒activity,finish掉后。从任务管理器进去还是这个提醒activity
- 在安卓DDMS中找相册文件夹传一张图片
- nil Nil NSnull sok svk
- SAPUI5 (07) - MVC文件的名称和位置
- 存储过程
- java根据IP获取用户所在地
- 求助: fragment 下listview.setOnItemClickListener() 无效
- Android利用JSBridge与HTML5的交互使用
- 分辨率,dpi,dp,与最终显示大小的四角关系
- 2016-个人总结
- 欢迎使用CSDN-markdown编辑器
- php 调用imagemagick实现老照片效果