踩坑(1):IDEA中解决JSP页面cannot resolve method setAttribute(“”)
标签(空格分隔): 踩坑
在一个项目中,我要在jsp页面中使用SpringMVC<from:form>
表单标签解析一个性别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.jar
和jsp-api.jar
这两个包。
这两个jar包是是tomcat自带的,因此在Project Structure
中,选择Library
–>Application Server Libraries
–>Tomcat 8.5
将这个引入后,就会导入缺少的包,过几秒中,包加载进来,就可以使用request.setAttribute()了!