Niagara AX之axvelocity的使用

axvelocity是一个Web模板引擎模块,来源于Apache Velocity。由于我的Niagara AX的许可没有axvelocity,因此,在palette中没有找到axvelocity。

但可以在平台的My Modules下找到它。

将axvelocity模块的module.palette下的VelocityServlet拖动到Station的Services下即可开始使用。

双击Services下的VelocityServlet,出现它的Velocity Document Manager视图。

在这个视图中可以点击下方的New按钮添加Velocity文档。

其中最重要的是选择Template File,这个文件可以是任意格式,如文本文件、HTML等,或者以vm结尾,都行,示例如下(velocity1.txt)。

模板文件选择好了,就可以通过浏览器访问它了,如下。

问题来了:

模板引擎的作用是在模板文件中显示不同Java对象的信息,这些Java对象从哪里来呢?

比如,上面展示的模板文件$user.name、$point.out.value中的user、point来自哪儿?

见下图:

velocity document的文档需要配置user、point等java对象,其属性视图如下:

从上图可以看出,需要在Velocity Document的Velocity Context属性下添加Velocity Context Ord Element。

使用结果:

可以通过axvelocity模块展示Niagara系统的信息到HTML界面上,但通过axvelocity来控制Niagara系统里面的点却有些问题,还没搞明白。

axvelocity的语法可以参考apache velocity官网的资料。

最后,Servlet Name的设置,设置完后,访问velocity document的url会有改变,如之前访问是使用:

http://localhost:82/velocity/velocity

更改servlet name后变为:

http://localhost:82/velocityz/velocity

至于在HTML页面中嵌入PX图,使用frameset+frame或者iframe都可以,关键是要设置正确的src,示例如下:

<frameset cols="300,*">
<frame src="/ord?file:^html/menu.html" />
<frame src="/ord?station:|slot:/Services" name="content" />
</frameset>

<body>
<iframe src="/ord?file:^html/menu.html" style="width:19%;height:100%;"></iframe>
<iframe src="/ord?station:|slot:/Services" name="content" style="width:80%;height:100%;"></iframe>
</body>

注意下面的url:

<body>
<a href="/ord?station:|slot:/Services/UserService" target="content">用户管理</a>
<br/>
<a href="/ord?history:/Ben0721/AuditHistory" target="content">历史记录</a>
<br/>
<a href="/velocity/velocity" target="content">velocity</a>
<br/>
<a href="/velocity/velocity2" target="content">velocity 2</a>
</body>

velocity的访问连接是不同的,没有/ord?开头。

ORD可以在Workplace里通过Ctrl + L获得,去掉ORD前面的local:|fox:1912|即可。

时间: 2024-10-10 08:57:19

Niagara AX之axvelocity的使用的相关文章

Niagara AX连接MySQL数据库

步骤如下 1.安装Niagara AX (3.8.38): 2.安装MySQL(5.6.25):将MySQL\Connector.J 5.1\mysql-connector-java-5.1.35-bin.jar放到$niagara_home\jre\lib\ext下: 建立数据库mikedb.建立表point.插入数据,如下图: 3.启动Station:station test: 4.打开Workplace,连接Station test: 5.在连接的Station test的Config/D

Niagara AX之BajaScript资料哪里找

四个步骤:(开篇:多谢陈工!) 1.Services下添加box->boxService: 2.在Apps下添加BajaScriptTutorialsApp: 3.登录用户的Web Profile设置为Default Mobile Web Profile: 4.登录之后就能查看BajaScript帮助文档了: 大家尽情享用吧!

Niagara AX之在Station下显示Home节点

默认的Station下是没有Home节点的,那么,这个Home节点是怎么添加上去的呢? 注意Home后面的描述(Description):“Navigation tree defined by nav file”,由nav文件定义. 每个用户都可以定义nav文件,但Home节点的只有在admin用户配置了Nav File后才会出现,而且, 配置admin用户的Nav File后必须重启Station才可以看到Home节点. 但是,Home节点的存在有什么实际用途呢?

灯光温度控制开关

1.启动Workbench的 方式 补充一种: 控制台找到Niagara的根目录文件, 点击 Install PlatformDaemon  或者如果是Win7 可以直接输入这个关键字 搜索.之后启动控制台Console   在控制台上输入WB 启动Workbench,进入Workbench之后依次打开Platform 和 station  ,输入设置的账户密码.查看station是否处于当前的运行状态,入股哟没有运行将station拷贝到当前的运行库中.同时启动station(可以同时启动多个

Dynamics AX 2012 – Batch Jobs Not Executing

In Dynamics AX 2012, there are times when batch jobs appear to be stranded in a waiting status.  When this happens, the cause can typically be a batch server or batch group which is not set up properly.   However, if these are set up correctly and yo

求解ax + by = c 这类方程

基础知识: 1.对于任意的ax+by=c, 如果我们知道有一组解x0, y0; 那么 x1 = x0+kb'(b'=b/gcd(a,b)), y1 = y0-ka'(a'=a/gcd(a,b)); 求解ax + by = c 的过程如下: 1.首先我们利用Egcd求出ax+by=g(g = gcd(a,b))的解. 利用此算法我们可以求出三个数g, x, y 2.然后我们判断c%g==0? 如果不等于0, 那么此方程无整数解.如果等于0的时候那么执行第三步 3.利用g, x, y, c我们求出a

关于ax+by=c的解x,y的min(|x|+|y|)值问题

首先我们移动一下项,并强行让a>b. 然后我们可以画出这样一个图像 我们发现,在线段l与x轴交点处的下方,x,y的绝度值是递增的,所以我们不考虑那个最小点在下端. 之后我们发现在点的上端,因为斜率小于-1,x的减少远没有y加的快,所以我们知道极点在l与x轴的交汇处. 但是该点不一定是整点啊.. 所以我们只要找到它上面和下面最近的两个整点即可. 所以我们求ax+by=c最小的正整数解y即可,之后调出x,然后y减去a,再求x,比较两次min(|x|+|y|),就可以得出答案了. 当然如果第一次求出来

拓展gcd解不定线性方程ax+by=c模版

拓展gcd解不定线性方程ax+by=c模版 /** 解不定方程 ax+by=c */ ll a,b,c; ll x,y; ll exgcd(ll a,ll b,ll &x,ll &y) { if(b==0){ x=1;y=0; return a; } ll r=exgcd(b,a%b,x,y); ll t=y; y=x-a/b*y; x=t; return r; } bool NLE(ll a,ll b,ll c,ll &x,ll &y) /**解不定方程 ax+by=c;

X++ Coding Standards [MSDN AX 2012]

MS Dynamics AX中对编写X++提倡的最佳实践原则还是极有借鉴实用价值.因此温习而知新并借来记之. General coding principles for Microsoft Dynamics AX. Declare variables as locally as possible. Check the error conditions in the beginning; return/abort as early as possible. Have only one succes