JRESPLUS开发-视图开发课件

上传人:我*** 文档编号:139440008 上传时间:2020-07-21 格式:PPTX 页数:17 大小:282.47KB
返回 下载 相关 举报
JRESPLUS开发-视图开发课件_第1页
第1页 / 共17页
JRESPLUS开发-视图开发课件_第2页
第2页 / 共17页
JRESPLUS开发-视图开发课件_第3页
第3页 / 共17页
JRESPLUS开发-视图开发课件_第4页
第4页 / 共17页
JRESPLUS开发-视图开发课件_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《JRESPLUS开发-视图开发课件》由会员分享,可在线阅读,更多相关《JRESPLUS开发-视图开发课件(17页珍藏版)》请在金锄头文库上搜索。

1、JRESPLUS开发 -视图开发,视图开发-目录结构,视图开发-布局与内容,视图,一个页面视图分为布局和内容两部分 1,可以提高复用(多个内容复用一套布局) 2,可以提高需求的应变性(改版快捷、统一) 3,提高人工利用率(职责分明,并行开发),布局,内容,=,+,(coc),美工与设计,业务开发,WEB-INF,views,layout,default.vm,screen,module,module,default.vm,sameName.vm,sameName.vm,1,首先匹配同名目录下的同名布局文件,2,其次匹配同名目录下的default布局文件,4,最后匹配布局根目录下的default

2、布局文件,Sub Module,Sub Module,default.vm,3,再次匹配上级目录下的default布局文件,内容页面与布局页面匹配规则,视图开发-布局与内容,#screen() #crud( “query”: type:text,name:userName,label:用户名, type:number,name:userAge,label:用户年龄, , ”tool”: label:新增,event:add(), label:修改,event:update(), . , ”cols”: label:用户名,field:userName, label:用户年龄,field:use

3、rAge, ) #end #jscode() function add() function update() #end, $screen_content ,layout,screen,layout中使用变量“$screen_content”为内容占位符; screen中的内容最终会被合并到layout中$screen_content所占的位置,编码规则 Layout页面中可以允许出现具有布局特性的dom结构和影响渲染的css样式; Screen页面中不允许出现具有布局特性的dom结构和css样式,原始的html代码,使用velocity宏的方式封装为宏指令(页面组件),screen中使用这些

4、页面组件开发页面内容,视图开发-页面中的URL,使用URLBroker获取资源URL, . ., . .,app.server.host=127.0.0.1 app.server.port=8080 image.server.host=192.168.54.71 image.server.port=8082,属性配置文件,视图开发-复用文本页面,使用include和parse引入文本资源(寻址路径从WEB-INF/views开始),内容1 #include(/demo/text.html) 内容2,文本内容,WEB-INF/views/text.html,内容1 #set($var1=zhan

5、gsan) #parse(/demo/varText.vm) 内容2,文本内容:$var1,WEB-INF/views/varText.vm,Include只做文本拷贝合并,parse做文本拷贝合并可以解析文本中的宏指令,内容1 文本内容 内容2,内容1 文本内容:zhangsan 内容2,视图开发-复用动态页面,使用contain引入动态资源(寻址路径从WEB-INF/views/screen开始),内容1 $contain.get(/demo/test2.htm) 内容2,WEB-INF/views/screen/demo/test2.vm,文本内容:$var1,内容1 文本内容:zhan

6、gsan 内容2,RequestMapping(value = /demo/test2.htm) public void test2(ModelMap map) map.put(“var1, “zhangsan”); ,RequestMapping(value = /demo/test.htm) public void test() ,WEB-INF/views/screen/demo/test.vm,视图开发-复用动态页面,使用contain引入动态资源(寻址路径从WEB-INF/views/screen开始),内容1 $contain.get(/demo/test2.htm).put(“u

7、serName”,”zhangsan”) 内容2,WEB-INF/views/screen/demo/test2.vm,文本内容:$var1,内容1 文本内容:zhangsan 内容2,RequestMapping(value = /demo/test2.htm) public void test2(String userName) map.put(“var1, userName); ,RequestMapping(value = /demo/test.htm) public void test() ,WEB-INF/views/screen/demo/test.vm,视图匹配顺序,视图开发-

8、控制器与视图,视图寻址规则,RequestMapping(value = /demo/test.htm) public void test() ,WEB-INF/views/screen/demo/test.vm,Controller RequestMapping(“/demo”) . RequestMapping(value = /test.htm) public void test() ,WEB-INF/views/screen/demo/test.vm,RequestMapping(value = /demo/test.htm) public String test() return “

9、/demo/test2.htm” ,WEB-INF/views/screen/demo/test2.vm,RequestMapping(value = /demo/test.htm) public String test() return “/demo/test2.htm” RequestMapping(value = /demo/test2.htm) public String test() return “/demo/test3.htm” ,WEB-INF/views/screen/demo/test3.vm,RequestMapping(value = /demo/test.htm) p

10、ublic String test() return “redirect:/demo/test2.htm” ,http:/host:port/app/demo/test2.htm,WEB-INF/views/screen/demo/test2.vm,RequestMapping(value = /demo/test.htm) public String test() return “forward:/demo/test2.htm” ,WEB-INF/views/screen/demo/test2.vm,WEB-INF/views/screen/demo/test2.vm,http:/host:

11、port/app/demo/test2.htm,WEB-INF/views/screen/demo/test2.jsp,1,2,Other view/demo/test2,3,http:/host:port/app/demo/test.htm,视图开发-页面宏,自定义页面宏组件 使用#macro指令封装宏,#checkcode(“name”:”checkCode”),#macro(checkcode $params) $!params.label #end,页面中使用宏组件,WEB-INFO/components/checkcode.vm,velocity.velocimacro.librar

12、y=components/checkcode.vm,属性配置文件,视图开发-velocity语法简介-变量,1.变量 (1)变量的定义: #set($name = hello) 说明:velocity中变量是弱类型的。 当使用#set指令时,括在双引号中的字面字符串将解析和重新解释,如下所示: #set($directoryRoot = www ) #set($templateName = index.vm ) #set($template = $directoryRoot/$templateName ) $template 输出将会是:www/index.vm 注:在velocity中使用$

13、2.5这样的货币标识是没有问题得的,因为velocity中的变量总是以一个大写或者小写的字母开始的。 (2)变量规范的写法 $name ,也可以写成:$name。提倡用前面的写法。 例如:你希望通过一个变量$vice来动态的组织一个字符串。 Jackisa$vicemaniac. 本来变量是$vice现在却变成了$vicemaniac,这样Veloctiy就不知道您到底要什么了。 所以,应该使用规范的格式书写:Jackisa$vicemaniac现在Velocity知道变量是$vice而不是$vicemaniac。 注意:当引用属性的时候不能加,视图开发-velocity语法简介-变量,(3)

14、变量的赋值: $name=hello 赋值的左边必须是一个变量或者是属性引用。右边可以是下面六种类型之一: 变量引用,字面字符串,属性引用,方法引用,字面数字,数组列表。 下面的例子演示了上述的每种类型: #set( $monkey = $bill ) # variable reference #set( $monkey.friend = monica ) # string #set( $monkey.blame = $whitehouse.leak ) # property reference #set( $monkey.plan = $spindoctor.weave($web) ) #

15、method reference #set( $monkey.number = 123 ) #number #set( $monkey.say = Not, $my, fault ) # ArrayList 注意:如果上述例子中的右值是null, 则左值不会被赋值,也就是说会保留以前的值。 velocity模板中未被定义的变量将被认为是一个字符串。例如: #set($foo=gibbous)$moon=$foo输出结果为:$moon=gibbous velocity模板中不会将reference解释为对象的实例变量。例如:$foo.name将被解释为Foo对象的getName()方法, 而不是

16、Foo对象的Name实例变量。例如: $foo.getBar()等同于$foo.bar; data.getRequest().getServerName()等同于 $data.request.rerverName等同于$data.request.serverName,视图开发-velocity语法简介-循环,2.循环 #foreach($elementin$list)Thisis$element. $velocityCount#end 例子: #set( $list = pine, oak, maple) #foreach($elementin$list) $velocityCount Thisis$element.#end 输出的结果为: 1 This is pine.2 This is oak.3 This is maple. 每次循环$list中的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号