【问题标题】:Read property of annotation读取注解的属性
【发布时间】:2014-10-11 10:00:09
【问题描述】:

如果我定义了这个类:

@MainForm(grupo = 3, icone = "user")
public class Usuario {
    ...
}

并将这个列表(包括上面的类)传递给视图:

public List<Class<?>> lista_classes_projeto() {
    ...
}

有没有办法在这个jsp代码中读取icone的值:

        <c:forEach var="option" items="${lista}">
            <li>
                <c:url value="/${option.simpleName}/listagem" var="url"/>
                <a class="link" href="${url}">
                    <i class="icon-"></i>
                    <span>${option.simpleName}</span>
                </a>
            </li>
        </c:forEach>

【问题讨论】:

    标签: java jsp reflection annotations jstl


    【解决方案1】:

    我没有测试,但你可以试试这行:(在你的 for each 中)

    ((MainForm) option.getAnnotation(MainForm.class)).icone();
    

    请注意,null 处理被忽略了。我假设所有option (class) 都有注释@MainForm

    【讨论】:

    • 在 jsp 页面中不起作用。是的,所有option (class) 都有注释MainForm
    • 我什至无法构建应用程序。我收到“无法将 MainForm 解析为类型”。如果我在我的 java 代码的任何地方使用,这可以工作,但不能在 jsp/jstl 代码中工作。
    • 用包尝试过类名?注释类在您的网络应用的类路径中吗?
    • option.getAnnotations() 返回什么?如果它在你的 classpth 中,MainForm can't be resolved to a type 不应该发生......我没有 jsp/jstl env 来测试。对不起..
    • 没有返回任何内容。我发送给查看的列表似乎是空的。
    猜你喜欢
    • 2015-05-03
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    相关资源
    最近更新 更多