首页 > 解决方案 > IntellijJ 可以通过 apache taglib 和 EL 在 JSP 中找到用法吗

问题描述

在 init.jsp

<%@ taglib uri="http://jakarta.apache.org/taglibs/unstandard-1.0" prefix="un" %>

在 JSP 中

<%@ include file="/html/init.jsp"%>
<un:useConstants var="ImageType" className="com.mydomain.model.ImageType" />

<select id="amlCheckType" name="amlCheckType">
    <option value="">Please choose one...</option>
    <option value="${ImageType.AML_CHECK_SUBTYPE_VERIPHY}">Veriphy</option>
    <option value="${ImageType.AML_CHECK_SUBTYPE_EQUIFAX}">Equifax</option>
</select>

在 ImageType.java 中

public static final int AML_CHECK_SUBTYPE_VERIPHY = 135;
public static final int AML_CHECK_SUBTYPE_EQUIFAX = 136;

IntelliJ 已将后两者设为灰色,并表示它们从未使用过。

IntelliJ 是否可以识别这些用法,以免它们被错误删除?

或者有没有更好的方法来引用 JSP 中的 java 常量,以便它们被识别?

更新

版本 = 社区 2018.1

标签: javajspintellij-ideaeltaglib

解决方案


IntelliJ IDEA 社区版本不支持。您可以在 IntelliJ IDEA 终极版中找到此功能。它具有 Web 开发的全部功能,包括识别JSP/JSF页面中的 java 变量。所以我建议使用 IntelliJ IDEA 终极版。

您可以遵循的另一种方法(通过注释抑制字段)

  1. 您可以为例如创建注释@Used

  2. 在 JSF 中使用的已声明变量上声明注释

    @Used
    public static final int AML_CHECK_SUBTYPE_VERIPHY = 135;
    
  3. 现在您可以alt + enter在您的字段中按并选择Suppress for fields for annotation ...Used。现在所有被标记的字段@Used都不会被 IntelliJ 抱怨。

注意:注释过程不取决于您是否使用了变量JSF。它只是提供了一种关闭检查标记注释的方法。如果您决定删除该字段,JSF则必须进入Java课堂并自己删除变量。IntelliJ IDEA 不会抱怨变量未使用


推荐阅读