Java 为什么映射(设置为标记中PageContext的属性)在eclipse中的JSP上出现错误?

Java 为什么映射(设置为标记中PageContext的属性)在eclipse中的JSP上出现错误?,java,eclipse,jsp,jakarta-ee,taglib,Java,Eclipse,Jsp,Jakarta Ee,Taglib,我正在使用Java7、EclipseLuna和WildFly 8.2.1 在Eclipse中,我有一个带有动态Web模块2.5和Java1.7的动态Web项目 我有一个类PageStartTagSupport,它扩展了TagSupport。在那里,我创建了一个映射,并将其设置为PageContext的属性: package com.srh.tag; import java.util.HashMap; import java.util.Map; import javax.servlet.jsp

我正在使用Java7、EclipseLuna和WildFly 8.2.1

在Eclipse中,我有一个带有动态Web模块2.5和Java1.7的动态Web项目

我有一个类PageStartTagSupport,它扩展了
TagSupport
。在那里,我创建了一个
映射
,并将其设置为
PageContext
的属性:

package com.srh.tag;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

public class PageStartTagSupport extends TagSupport {

    @Override
    public int doStartTag() throws JspException {               
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("NAME", "SRH");

        pageContext.setAttribute("sessionsMap", map);

        return EVAL_BODY_INCLUDE;
    }

    @Override
    public int doEndTag() throws JspException {     
        return EVAL_PAGE;  
    }

}
在WEB-INF中,我有一个srhtags.tld文件:

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ">
 <tlib-version>0.0</tlib-version>
 <short-name>NMTOKEN</short-name>
 <tag>
  <description>Session Tag</description>
  <name>pagestart</name>
  <tag-class>com.srh.tag.PageStartTagSupport</tag-class>
  <tei-class>com.srh.tag.PageStartTagExtraInfo</tei-class>
  <body-content>empty</body-content>
 </tag>
</taglib>
错误消息是:

该方法将(capture#5-of?、capture#6-of?)放入类型中 映射不适用于参数 (弦,弦)

为什么Eclipse会给我这个错误

谢谢

“(capture#5-of?”实际上是消息的一部分?当VariableInfo具有正确的类型值时会发生什么情况?是”(capture#5-of?)是消息的一部分。我在上面输入的错误消息是Eclipse给我的消息。我不明白您所说的
VariableInfo
具有正确的类型值是什么意思?我确实尝试了
newvariableinfo(“sessionmap”,“java.util.Map”,true,VariableInfo.AT_BEGIN)
,但仍然是相同的错误。
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ">
 <tlib-version>0.0</tlib-version>
 <short-name>NMTOKEN</short-name>
 <tag>
  <description>Session Tag</description>
  <name>pagestart</name>
  <tag-class>com.srh.tag.PageStartTagSupport</tag-class>
  <tei-class>com.srh.tag.PageStartTagExtraInfo</tei-class>
  <body-content>empty</body-content>
 </tag>
</taglib>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ taglib uri="/WEB-INF/srhtags.tld" prefix="srh"%>
<srh:pagestart/>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%
System.out.println("************* login.jsp: inside");

System.out.println("login.jsp: (original): sessionsMap=" + sessionsMap);
sessionsMap.put("NAME2", "SRH2");
System.out.println("login.jsp: (latest): sessionsMap=" + sessionsMap);

%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
sessionsMap.put("NAME2", "SRH2");