踩坑(1):IDEA中解决JSP页面cannot resolve method setAttribute("")

踩坑(1):IDEA中解决JSP页面cannot resolve method setAttribute(“”)

标签(空格分隔): 踩坑


在一个项目中,我要在jsp页面中使用SpringMVC表单标签解析一个性别gender的的radiobuttons。

代码如下:

    <%
        Map<String,String> genders = new HashMap<>();
        genders.put("1","Male");
        genders.put("0","Female");
    %>
    Gender:<form:radiobuttons path="gender" items="${genders}" />

但是运行出错了,提示的错误信息是:

java.lang.IllegalArgumentException: 'items' must not be null

也就是说items="${genders}没有取到信息,也就是说我再jsp页面中写的java代码genders没有获取到。

解决方法是将genders信息加入到请求域中,通过request.setAttribute()方法。

    <%
        Map<String,String> genders = new HashMap<>();
        genders.put("1","Male");
        genders.put("0","Female");

        request.setAttribute("genders",genders);
    %>

但是重点来了! setAttribute这几个字母是红色的,也就是说压根没有识别到是这个方法。

IDEA也提示:cannot resolve method setAttribute("")

而相同的代码在Eclipse中就没有错误。排除了页面中import的错误后,我怀疑是缺少包。

那且少什么包呢?servlet-api.jarjsp-api.jar这两个包。

这两个jar包是是tomcat自带的,因此在Project Structure中,选择Library–>Application Server Libraries–>Tomcat 8.5

将这个引入后,就会导入缺少的包,过几秒中,包加载进来,就可以使用request.setAttribute()了!

你可能感兴趣的:(踩坑记录)