我的代码有问题。我需要在 JSP 上导入两个代理。我不知道为什么,但每当导入我的其他代理包时,我的代码都会出错。我想过将导入代码放在 if else 语句中,但它不起作用。我的代码有问题吗?
<%@ page language="java" %>
<%@ page import="java.lang.String"%>
<%
int i = 1;
if (i == 0){
%>
<%@ page import ="com.x.x.function" %>
<%@ page import ="com.x.x.functionViDocument" %>
<%@ page import ="com.x.x.types.*" %>
<%
}else {
%>
<%@ page import ="com.x.x2.function" %>
<%@ page import ="com.x.x2.functionViDocument" %>
<%@ page import ="com.x.x2.types.*" %>
<%
}
%>
最佳答案
您无法在 Java 中进行条件导入。 JSP 被转换为 java 类(扩展 HttpServlet),并且您的代码不是有效的 java 代码。
您可以在代码中使用完全限定的类名。如果您需要一个函数
,那么:
com.x.x.Function fn1 = ...
和 com.x.x2.Function fn2 = ..
。
但是,这不是一个好的做法。最好您应该有一个两个 Function
类都实现的接口(interface),这样您就不需要那么多有条件的复制粘贴代码。
另外两件事:使用大写的类名(Function
而不是 function
)。并且不要在 JSP 中编写 Java 代码。请改用 servlet。
关于java - 在JSP上导入2个代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7402400/