【发布时间】:2011-04-02 12:34:57
【问题描述】:
我在 weblogic 中部署时收到以下错误:
解析 JSP 文件“/pages/RegisteredEmployee.jsp”失败:/pages/RegisteredEmployee.jsp(5): 使用标签库 uri='/WEB-INF/struts-html.tld' prefix='html 时出错':标签类 'org.apache.struts.taglib.html.FormTag' 没有与 TLD 声明的属性 'name' 对应的 setter 方法,(JSP 1.1 规范,5.4.1)可能由于 /pages/ 中的错误而发生RegisteredEmployee.jsp 第 5 行:
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
我的struts-html.tld 在/WEB-INF 文件夹中。我还尝试将标签库指令路径更改为http://jakarta.apache.org/struts/tags-html,它显示相同的错误。我也将struts-html.tld复制到/WEB-INF/lib,同样报错。
我该如何解决这个问题?
RegisteredEmployee.jsp
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html:html>
<html:form action="reg employee">
<body>
<center>
<table>
<tr>
<td>Employee Id:</td>
<td><html:text property="id"/></td>
<td><html:submit value="Login to see your details"></html:submit></td>
</tr>
</table>
</center>
</body>
</html:form>
</html:html>
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/pages/RegisteredEmployee.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
</web-app>
【问题讨论】: