java導出復雜word,velocity java 靜態方法_java – 如何訪問Velocity模板中的靜態成員?

 2023-10-15 阅读 32 评论 0

摘要:我不知道在Velocity中是否有辦法做到這一點:java導出復雜word?我有一個用戶POJO,一個名為Status的屬性,它看起來像枚舉(但不是,因為我被困在Java 1.4上),定義看起來像這樣:public class User {java動態生成word,// default status to Userprivate Status stat

我不知道在Velocity中是否有辦法做到這一點:

java導出復雜word?我有一個用戶POJO,一個名為Status的屬性,它看起來像枚舉(但不是,因為我被困在Java 1.4上),定義看起來像這樣:

public class User {

java動態生成word,// 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應用程序),但是我強烈不想嵌入任何魔術視圖層中的數字或常量.

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/136820.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息