我正在学习 Struts2 教程。它告诉我导入列出的类。但它没有告诉我将哪些 jar 文件放入
WEB-INF
文件夹下的 lib 文件夹中。
这些是我的操作类中的导入语句:
import com.opensymphony.xwork2.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
我的 lib 文件夹中有以下 jar 文件。但显然这些还不够。
Commons-IO 2.2
Commons-lang3-3.0
Commons-logging-1.1.3
Commons-fileupload-1.2
Freemarker-2.3.19
Javaassist- 3.12.1 GA
Ognl-3.0.6
Sqljdbc4
Org.apache.commons.io-2.4
Struts2-core 2.3.16
Xwork-core 2.3.16
有人可以告诉我应该将哪些 jar 放入 lib 文件夹中吗?
在导入语句中您使用的是 servlet API。因此,您需要添加 Java EE 依赖项。但它应该仅在编译时在类路径上可用。这意味着您应该将此 jar 添加到构建路径,而不是添加到
WEB-INF/lib
。 Servlet API jar 包含在每个运行 servlet 容器的 Web 服务器中。在部署应用程序之前,这些类已由 Web 服务器加载。并且不允许加载它们两次。这就是为什么你不应该把它们放在 WEB-INF/lib
。您应该使用 Java EE 包中的什么
javax.servlet.jar
javax.servlet.jsp.jar
javax.servlet.jsp.jstl.jar
如果您不使用 Maven,您也可以检查 this 答案来获取有关 Struts2 项目使用的库的线索。
如果您使用 Maven,请使用范围为
provided
的 jar。更多详情请参见这里。
最后,您在导入中使用 Struts 1 类,因此如果您想在 Struts2 项目中使用这些类,那么您还需要额外
struts2-struts1-plugin-2.3.16.jar
struts-core-1.3.10.jar