在JSTL上IntelliJ警告“无法解析变量”

时间:2014-12-14 20:04:04

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

我正在使用Tomcat编写Web服务器。 我决定使用的技术是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标记中使用这些变量,例如来自page:

<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"/>

但我仍然收到警告。 任何的想法?我做的事情真的错了吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

我也遇到了这个问题,真的很烦我。 今天我搜索了这个问题并找不到解决方案。 不过我使用了ModelMap而不是HttpServletRequest

map.put("info",info);

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

map.addAttribute("info",info);

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

答案 1 :(得分:0)

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

我的版本是最新的。