velocity java 静态方法_java – 如何访问Velocity模板中的静态成员?
我不知道在Velocity中是否有办法做到这一点:
我有一个用户POJO,一个名为Status的属性,它看起来像枚举(但不是,因为我被困在Java 1.4上),定义看起来像这样:
public class User {
// default status to User
private Status status = Status.USER;
public void setStatus(Status status) {
this.status = status;
}
public Status getStatus() {
return status;
}
而状态是静态的内部类:
public static final class Status {
private String statusString;
private Status(String statusString) {
this.statusString = statusString;
}
public final static Status USER = new Status("user");
public final static Status ADMIN = new Status("admin");
public final static Status STATUS_X = new Status("blah");
//.equals() and .hashCode() implemented as well
}
使用这种模式,用户状态可以很容易地在条件中进行测试
if(User.Status.ADMIN.equals(user.getStatus())) ...
…而不必引用状态ID,任何魔术数字等的任何常量.
但是,我不知道如何使用VTL在我的Velocity模板中测试这些条件.我想根据用户的状态打印一个简单的字符串,如:
Welcome ${user.name}!
#if($user.status == com.company.blah.User.Status.USER)
You are a regular user
#elseif($user.status == com.company.blah.User.Status.ADMIN)
You are an administrator
#etc...
#end
但是这会抛出一个异常,看起来像是org.apache.velocity.exception.ParseErrorException:在webpages / include / dashboard.inc中遇到“User”[第10行,第21列]期望的是:“[”…“
从the VTL User Guide起,没有提到在VTL中直接访问Java类/静态成员,似乎条件的右侧(RHS)只能是数字文字,字符串文字,属性引用或方法引用.
那么有什么办法可以访问Velocity模板中的静态Java属性/引用吗?我知道作为解决方法,我可以在我的控制器中嵌入状态ID或其他标识符作为参考(这是使用Velocity作为View技术的Web MVC应用程序),但是我强烈不想嵌入任何魔术视图层中的数字或常量.
velocity java 静态方法_java – 如何访问Velocity模板中的静态成员?相关推荐
- java里上下文对象,java-在百里香模板中的Web上下文对象上发出...
我试图在thymeleaf 3.0.3和Spring Boot 1.5.1的模板中调用Web上下文对象上的方法,例如#request和#response. 我不断收到这样的错误: org.spring ...
- freemarker java静态方法_java Freemarker页面静态化实例详解
freemarker freemarker 是一个用 java 语言编写的模板引擎,它基于模板来生成文本输出.freemarker与 web 容器无关,即在 web 运行时,它并不知道 servlet ...
- java连接打印机访问被拒绝_java – 尝试访问spring security中的登录页面时访问被拒绝的异常...
我正在使用基于java的spring security.我创建了自定义访问决策选民impl. 但是当我运行应用程序时,我无法打开登录页面,因为它说,访问被拒绝. 这是在我添加自定义访问决策选民impl ...
- Java线程中的静态方法_Java多线程3:Thread中的静态方法
Thread类中的静态方法 Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程".为什么Thread类中要有静态方法,这样就能对CPU当前正在运行的线程 ...
- java word标签替换_JAVA实现替换WORD模板中的文字和图片
1.本来有其他方法可以实现的,但是由于jar包一直有问题所以换了种,要是还有其他的更好的方法,希望可以讨论 2.废话不说直接上代码: 3.我自己加了个生成图片的方法,也可以不需要直接用已经存在的图片替 ...
- java excel 模板 替换_JAVA POI替换EXCEL模板中自定义标签(XLSX版本)满足替换多个SHEET中自定义标签...
个人说明:为了简单实现导出数据较少的EXCEL(根据自定义书签模板) 一.替换Excel表格标签方法 ``` /** * 替换Excel模板文件内容 * @param map * 需要替换的标签建筑队 ...
- 配置管理和Java开发_Java开发环境之------MyEclipse中服务器Server的配置,管理和启动...
1,MyEclipse中服务器的管理(以tomcat为例) (1),菜单--->Window--->Preferences--->MyEclipse--->Servers--- ...
- java 捆绑_java – 如何在jar文件中捆绑图像
在这里似乎有两个问题: >如何让NetBeans在构建项目时将jar包含在生成的jar中? >如何从jar中访问映像文件? 此应用程序适用于NetBeans 6.8并解决了两个方面的问题. ...
- java机顶盒_Java技术在数字电视机顶盒中的应用
介绍数字电视广播一多媒体家庭平台(DVB一MHP)是通用的平台,允许用户透明地访问一定范围的多媒体服务,它包括软件结构和硬件设备.系统软件包括实时操作系统.交互引擎.后台数据库.浏览器和应用服务程序管 ...
最新文章
- SLAM和三维重建有什么区别?
- ArcGIS 复制要素
- 在没有安装有mvc3的主机上部署asp.net mvc3网站,需要包含的DLL文件
- 将JavaScript集成到QML中
- 京东JDHBase异地多活实践
- Java 数组常用操作二(扩充、扩容、重复数据、动态数组、数组差集、数组交集、查找指定元素、判断是否相同、数组合并)
- mysql 停从库_不停止 MySQL 服务增加从库的两种方式
- 中文短文本的实体识别实体链接,第一名解决方案
- 闭关修炼——six——Spring
- Qt 21行实现 十六进制字符串互转QByteArray QString Hex互转QByteArray
- 机器学习 - 概念学习
- Cryengine渲染引擎剖析(转)
- doctrine2 mysql_doctrine2到底是个什么玩意
- 【Linux内核分析与应用-陈莉君老师】课程相关索引
- 安卓机如果相册不选图片就退出_2020最新制作动态相册技巧
- Linux-打包、压缩命令
- 背景的样式(雪碧图)
- python学习笔记4(模块
- 反驳生命的起点是rna_生命起源之谜:RNA世界假说将迎来终结?
- 产品经理设计产品流程都有哪些步骤
热门文章
- JS获取当前时间,例如2019-10-01格式
- python怎么通过占位符_如何输入占位符?
- 假设linux分配给u盘设备名是,嵌入式linux开发基础试卷-应用物理A答案
- oracle rman备份 归档模式,Oracle RMAN备份归档与非归档模式
- 嵌入式在线html编辑器,嵌入式HTML编辑器的设计与实现.ppt
- nested exception is java.lang.UnsatisfiedLinkError: no jacob-1.19-x64 in java.library.path
- Hutool:时间日期工具
- 如何利用MySQL Workbench创建Model EER 图
- Android开发笔记(八十三)多语言支持
- thinkphp5 open_basedir 补充