当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2021-06-25
我正在使用Tomcat编写Web服务器. 我决定使用的技术是JSTL. 我想首先说它有效,页面显示成功,一切都运行. 我想摆脱警告. 我从intelliJ获得的警告是:“无法解析变量””,它来自一个JSP页面
我正在使用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标记中使用此变量,例如来自页面:

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

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

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

map.put("info",info);

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

map.addAttribute("info",info);

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

网友评论