Java 为什么映射(设置为标记中PageContext的属性)在eclipse中的JSP上出现错误?
我正在使用Java7、EclipseLuna和WildFly 8.2.1 在Eclipse中,我有一个带有动态Web模块2.5和Java1.7的动态Web项目 我有一个类PageStartTagSupport,它扩展了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
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");