【问题标题】:IntelliJ warning "cannot resolve variable" on JSTLJSTL 上的 IntelliJ 警告“无法解析变量”
【发布时间】:2014-12-14 20:04:04
【问题描述】:

我正在使用 Tomcat 编写网络服务器。 我决定使用的技术是 JSTL。

首先我想说它可以工作,页面显示成功,一切运行。 我确实喜欢摆脱警告。 我从 intelliJ 得到的警告是:“无法解析变量''”,它来自一个 JSP 页面,其中我有一些 JSTL 代码。使用 RequestDispatcher 转发功能从我的控制器调用 jsp 页面。

request.setAttribute("resultsModel", resultsModel);
request.setAttribute("times", times);
request.setAttribute("emailErr", emailErr);
request.setAttribute("qid", id);
RequestDispatcher view = request.getRequestDispatcher("ShowResults.jsp");
view.forward(request, respone);

JSP 页面然后在各种 JSTL 标记中使用此变量,例如来自页面:

<c:choose>
<%-- When database access was succesfull --%>
<c:when test="${resultsModel != null}">
    <c:choose>
        <%-- When the job ID exists --%>
        <c:when test="${resultsModel.jobEntity != null}">

等等……

然后在我尝试访问 resultModel 的位置发出警告。 我尝试像这样添加一个 jsp:useBean 标记:

<jsp:useBean id="resultsModel" scope="request" type="bgu.bioinf.rnaSequenceSniffer.Model.ResultsModel"/>

但我仍然收到警告。 任何的想法?我做错了什么? 谢谢!

【问题讨论】:

  • 您可以按 Alt-Enter 选择一个 QuickFix,您尝试过吗?
  • 如果一切正常,请保持原样。不要为了让你的 IDE 开心而用无用的代码污染你的代码。它试图找出可能的错误,但没有这样做。接受。你比 IDE 更聪明。
  • QuickFix 上没有任何内容。我忽略了它 ATM,只是我的上一个老板真的在我身上烙印了需要编译 0 警告,他们有时可能会隐藏一些真正的错误。
  • 在提出问题之前尝试找到答案...解决方案是here

标签: jsp model-view-controller intellij-idea jstl warnings


【解决方案1】:

我也遇到了这个问题,真的很困扰我。 今天我google了这个问题,没有找到解决办法。 但是我使用了ModelMap 而不是HttpServletRequest

map.put("info",info);

毫无疑问我得到了这个警告,然后我改变了方法:

map.addAttribute("info",info);

我想说这种方式确实解决了警告,你甚至可以ctrl + button1 在控制器中导航bean。 我不知道这是否解决了其他场景中的问题,但是在 intellij 2018.1 中我只是摆脱了它。希望它对你有用

【讨论】:

    【解决方案2】:

    转到Project Structure | Libaraies | Add | From Maven 搜索javax.servlet:jstl,然后选择javax.servlet:jstl:1.2

    我的版本是最新的。

    【讨论】:

      猜你喜欢
      • 2015-08-22
      • 2019-02-27
      • 2015-09-11
      • 2019-09-22
      • 2018-11-08
      • 1970-01-01
      • 2016-12-07
      • 2021-11-22
      • 2021-11-13
      相关资源
      最近更新 更多