我的代码出现问题。我需要在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.*" %>
<%
}
%>
答案 0 :(得分:1)
您无法在Java中执行条件导入。 JSP被转换为java类(扩展了HttpServlet),并且您的代码不是有效的Java代码。
您可以在代码中使用完全限定的类名。如果您需要Function
,那么:
com.x.x.Function fn1 = ...
和com.x.x2.Function fn2 = ..
。
然而,这不是一个好习惯。优选地,您应该具有两个Function
类都实现的接口,这样您就没有那么多条件复制粘贴代码。
另外两件事:使用大写的类名(Function
而不是function
)。并且不要在JSP中编写java代码。请改用servlet。