struts2 与 velocity 调整 探究
struts2 与 velocity 整合 探究我这边引出几个问题。 问题1,struts2 是怎么让 velocity 按照指定的 Resourc
struts2 与 velocity 整合 探究
我这边引出几个问题。
问题1,struts2 是怎么让 velocity 按照指定的 ResourceLoader 加载 vm 模板的?
?
首先,struts 默认的查找vm模板的路径有两种:
1,以 webapp 为相对路径下面去找
2,从 classpath 下面去找
那么看下面的代码 org.apache.struts2.views.velocity.VelocityManager:
那么这些Component 怎么和velocity ,freemarke 或者其他模板结合的呢? 我这里介绍和velocity结合的方式:
?
先看下图:
?
可以看到在velocity 这个包里面对上面的 component 都有对应的 类支持。
这些类都继承自org.apache.velocity.runtime.directive.Directive?
这个类是用来实现类似velocity 中的 #set 这样的语法的(前面带个#号的那种)
注意到还有个基类:
<?xml?version="1.0"?>??<toolbox>??????<tool>??????????<key>link</key>??????????<scope>request</scope>??????????<class>??????????????org.apache.velocity.tools.struts.StrutsLinkTool???????</class>??????</tool>??????<tool>??????????<key>msg</key>??????????<scope>request</scope>??????????<class>??????????????org.apache.velocity.tools.struts.MessageTool???????</class>??????</tool>??????<tool>??????????<key>errors</key>??????????<scope>request</scope>??????????<class>??????????????org.apache.velocity.tools.struts.ErrorsTool???????</class>??????</tool>??????<tool>??????????<key>form</key>??????????<scope>request</scope>??????????<class>??????????????org.apache.velocity.tools.struts.FormTool???????</class>??????</tool>??????<tool>??????????<key>tiles</key>??????????<scope>request</scope>??????????<class>??????????????org.apache.velocity.tools.struts.TilesTool???????</class>??????</tool>??????<tool>??????????<key>validator</key>??????????<scope>request</scope>??????????<class>??????????????org.apache.velocity.tools.struts.ValidatorTool???????</class>??????</tool>??</toolbox>??
?
问题5,struts 与 velocity 整合以后,有哪些内置的变量可以直接用?
req - the current HttpServletRequestres - the current HttpServletResponsestack - the current OgnlValueStackognl - an instance of OgnlToolui - a (now deprecated) instance of a ui tag renderer