我正在使用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"/>
但我仍然收到警告。 任何的想法?我做的事情真的错了吗? 谢谢!
答案 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
。
我的版本是最新的。