开发者社区> 问答> 正文

使用velocity, 用不同模板的的解析问题

 <servlet>
            <servlet-name>velocity</servlet-name>
            <servlet-class>my.view.VelocityServlet</servlet-class>
            <init-param>
                <param-name>org.apache.velocity.toolbox</param-name>
                <param-value>/WEB-INF/conf/velocity-toolbox.xml</param-value>
        </init-param>
            <init-param>
                <param-name>org.apache.velocity.properties</param-name>
                <param-value>/WEB-INF/conf/velocity.properties</param-value>
            </init-param>
        <load-on-startup>1</load-on-startup>
        </servlet>
<servlet-mapping>
        <servlet-name>velocity</servlet-name>
            <url-pattern>*.vm</url-pattern>
  </servlet-mapping>

在oschina 的代码中, 使用了一个servlet 对于所有的 *.vm 进行了模板解析,

问题在于: 用于 模板通用的一些参数和对象, 是可以的, 但是不同模板中需要特殊处理的 对象, 比如map,list 又是怎么集成到一个servlet 中, 好像并没有写其他配置文件用于判断 不同模板的解析.

展开
收起
小旋风柴进 2016-03-05 14:43:13 2136 0
1 条回答
写回答
取消 提交回答
  • tool是独立于页面的,tool里面是一些静态方法,这些方法可以返回任何Java对象,可以在vm里面调用这些静态方法,然后进行处理,给你个例子吧:

    这是一个tool:

    /**
     * 根据公司id分页列出所有职位列表
     */
    public static List<Position> listPositionsByCompanyNoLimit(long cid,
            int page, int size) {
        return RecPosition.ListPositionByCompanyNoLimit(cid, page, size);
    }

    在vm里面任何需要职位列表的地方直接调用$set($ps=$job.listPositionsByCompanyNoLimit(1,1,10))

    然后循环就可以了,job为tool类配置的tool名称

    2019-07-17 18:53:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像