将Struts 1标记迁移到Struts 2

时间:2014-12-22 06:14:21

标签: jsp struts2 tags taglib

我正在尝试将Struts1中的一堆JSP重用到Struts2,一些JSP的taglib声明如下:

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

当我将它们更改为:

<%@ taglib uri="/struts-tags" prefix="html"%>
<%@ taglib uri="/struts-tags" prefix="logic"%>
<%@ taglib uri="/struts-tags" prefix="bean"%>

我收到错误:

  

JSPG0227E:翻译/jsp/survey/surveyIdPreview.jsp时遇到异常:   /jsp/survey/surveyIdPreview.jsp(27,1) - &gt; JSPG0046E:无法找到标记html的标记文件

我使用相同taglib三次的原因是因为标签遍布JSP,我正在尝试最小化代码更改。

此方法适用于剩余的应用程序,但对于某些页面,我看到上述错误。 我无法理解为什么某些页面看不到Struts2 jar中的TLD。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

这3是struts 1标签。

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

Struts 2只使用一个tld,即struts-tags.tld。 所以你只能声明为:

<%@ taglib prefix="s" uri="/struts-tags" %>

还要确保你的WEB-INF / lib中的struts2-core-2.x.x.jar