action - jmr-source/doc GitHub Wiki
###目录:###
###例子位置:###
- demo/action/action.jmr.xml
##前言##
在jsp、asp、php发展的初期,很多项目都是没有前后台之分,大量的业务逻辑,数据库查询代码写在<%%>或?>中,随着各种框架的发展,项目都会分成前后台,jsp、asp、php中只写和界面相关的代码,后台写业务逻辑、数据库查询。
同理,我们不提倡在jet模板中插入各种业务逻辑,这会使得页面变得冗余,不美观。
如下例,输出哈利波特书名和列表。
运行结果如下:
这是action,也就是一个java类。把业务逻辑全放这吧!
使用action后,同样的结果,是不是简洁了许多呢?
从context中得到想要的变量输出。
什么?还不满意,使用action + 结合标签,这样才完美!
标签不会用,没提示?小case,在模板头部指定下提示的Action
按提示键(如Alt+/),可以提示出所有变量。
标签中的变量使用Ognl扩展,可以自由的使用到变量的属性和方法(此处类型为String)。
将鼠标选中,或者放到对应的位置可以显示值。
总结:Action和标签更配哦,它们结合的优点:
- 在Action中写业务逻辑很好的解决分层不清晰,代码冗余的问题。
- 一个Action可以分配给多个任务和模板,可以很好的把业务逻辑公共出来。
- 使用标签可以直接得到context中的变量,不需要在<%%>中调用context取值和导入对应的包。
- 标签使用Ognl,可以自由调用变量的属性和方法(很好的取代了<%%>原生代码的优势)。
##创建Action##
鼠标右键,在New中选择Jmr Action。
输入名称MyAction,点击完成(Finish)。
如果当前项目没有载入Jmr的库
点击完成(Finish)后,点击OK导入Jmr库即可。
在项目中就会加入Jmr库,这个库和Junit库一样,只存在于项目开发环境里,不会影响项目实际的依赖结构。
在任务的Action栏目中点击浏览
在弹出的浏览框中会匹配所有的Jmr Action,选择MyAction。
这样,任务中就设置好了action。
##使用Action##
action的结构很简单,在execute方法中提供上下文容器context。只要往context中设置需要传递的变量即可。
可以在context中设置变量和全局变量。变量可以是各种基本类型,Object对象等。
关于context设置变量,请阅读:
在模版中,如果想得到Action的提示,可以选择想要的Action;
在标签中可以得到这些变量的提示。
更多关于标签调用,请阅读: