我正在练习自定义标签和 jSTL 标签,现在我想要的是我的自定义标签应该返回一个结果集,而 jSTL 应该迭代这个结果集。
我的自定义标签是这样的:
<connect:Query where="${param.id }"></connect:Query>
查询结果为resultset。
现在,如何返回这个结果,以便可以对其进行迭代。
最佳答案
我通过执行以下操作解决了这个问题:
为结果构建一个包装器
public class Row {
String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String toString() {
return value;
};
}
在标记处理程序中,我以集合的形式添加了元素,因为 forEach 处理对象集合。
public int doStartTag() throws JspException {
// some code here
ArrayList<Row> rowList = new ArrayList<>();
while(set.next()){
//pageContext.getOut().print("<br>" + set.getString("empName"));
Row currRow = new Row();
currRow.setValue(set.getString("empName"));
rowList.add(currRow);
}
pageContext.setAttribute("result", rowList);
// some more code
}
在jsp中我像下面这样处理属性
<connect:Query where="${param.id }"></connect:Query>
<c:forEach var="value" items="${result }">
<c:out value="${value }"></c:out>
</c:forEach>
关于java - 从自定义标签返回值到jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20632463/