action - jmr-source/doc GitHub Wiki

action


###目录:###


###例子位置:###

  • 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;

在标签中可以得到这些变量的提示。

更多关于标签调用,请阅读:

⚠️ **GitHub.com Fallback** ⚠️