我使用的代码运行正常,但这是我jsp中的最后一个scriptlet:
<% List listMillesime= MultiMillesimeFactory.getInstance().getListMillesimeActif();
pageContext.setAttribute("listMillesime",listMillesime);
%>
...
<c:forEach var="millesime" items="${listMillesime}">
...
</c:forEach>
这是工厂声明:
public class MultiMillesimeFactory {
private static MultiMillesime multiMillesime;
private MultiMillesimeFactory(){
}
public static MultiMillesime getInstance() {
if (multiMillesime == null) {
multiMillesime = new MultiMillesime();
}
return multiMillesime;
}
}
Multimillesime是一个标准类,方法getListMillesimeActif
返回一个列表。声明:
public class MultiMillesime {
...
public List getListMillesimeActif() throws Exception {
List _l = Collections.synchronizedList(new LinkedList());
...
return _l;
}
}
c:对于list和enum上的每个工作正常但是这里的问题来自于使用getInstance,我尝试了MultiMillesimeFactory.Instance.ListMillesimeActif但没有成功。
最后一个小脚本是:
<a href='<%=request.getContextPath() %>
我不确定这两个都是可拆卸的。
答案 0 :(得分:3)
您可以使用JSTL标记替换<%=request.getContextPath() %>
scriptlet:
<a href="${pageContext.request.contextPath}" />
看到这样的事情并不罕见:
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
...
<a href="${ctx}" />
至于MultiMillesimeFactory
的问题:它看起来像是你的代码库中的一个类,我们无法为你神奇地调试这个问题。这听起来不像JSP问题。
“尝试MultiMillesimeFactory.Instance.ListMillesimeActif没有成功”是什么意思?
编辑:重新:你的评论:我不确定我明白你的意思,但我猜你的问题是你需要使用{{1的完全限定类名正确地查找它。但是,您确实应该尽可能避免使用scriptlet。相反,使用适当的servlet将MultiMillesimeFactory
注入请求中,如下所示:
ListMillesimeActif