使用 EL <C:forEach> 输出 JCoTable 行
Output JCoTable rows using EL <C:forEach>
我创建了一个 java Web 应用程序,它从 SAP 后端读取自定义 table(每条记录包含 13 个字段)到 Web 应用程序中的 JCoTable 中,一切正常。
我的要求是使用 EL 将 JCoTable 上的所有记录输出到 JSP 上。我如何为输出目的引用每个单独的字段?即
<c:forEach items="${claimstable}" var="clms">
${clms.field1}
${clms.field2}
${clms.field3}
</c:forEach>
我尝试使用 ArrayList、TreeSet 和 HashMap 在 JSP 上输出 table 内容,使用 servlet 将请求属性转发到 JSP,但是我无法直接访问每个字段,我只能将内容输出为一个长字符串。
我是否需要为我的 table 字段名创建一个 class 并继续这样做?或者什么?
非常感谢任何帮助。
首先在请求中设置值,然后尝试在 jsp
中访问它
在您的 servlet 中执行
List<List<Person>> claimstable= getItSomehow();
request.setAttribute("claimstable", claimstable);
索赔表将可在 jsp 中访问。
每个循环使用 double 来遍历单个 String
我采用的解决方案是使用 setter 和 getter 创建我的自定义 table 对象,将每个字段创建为对象内的 属性 即
public class ClaimTableProperties {
private String zuonr;
private String bktxt;
private String blart;
private String belnr;
...etc.
然后将每个字段的 JCoTable 的每一行映射到一个数组列表:
static ArrayList<ClaimTableProperties> claimstable = new ArrayList<ClaimTableProperties>();
JCoTable claims = function.getTableParameterList().getTable("CLAIM_DETAILS");
claims.firstRow();
int rownums = claims.getNumRows();
ClaimTableProperties[] ctp = new ClaimTableProperties[rownums];
for (int i = 0; i < rownums; i++) {
ctp[i] = new ClaimTableProperties();
ctp[i].setBelnr(claims.getString("BELNR"));
ctp[i].setBktxt(claims.getString("BKTXT"));
ctp[i].setZuonr(claims.getString("ZUONR"));
ctp[i].setBlart(claims.getString("BLART"));
claimstable.add(ctp[i]);
claims.nextRow();
} // End for
在您的 servlet 中,设置属性以便您的 jsp
知道它
ArrayList<ClaimTableProperties> claims = dgc.returnClaimsTable();
request.setAttribute("claimstable", claims);
然后在jsp上,使用JSTL输出每个必填字段:
<table>
<c:forEach items="${claimstable}" var="claim">
<tr>
<td>${claim.belnr}</td>
<td>${claim.bktxt}</td>
<td>${claim.zuonr}</td>
<td>${claim.blart}</td>
</tr>
</c:forEach>
</table>
我创建了一个 java Web 应用程序,它从 SAP 后端读取自定义 table(每条记录包含 13 个字段)到 Web 应用程序中的 JCoTable 中,一切正常。
我的要求是使用 EL 将 JCoTable 上的所有记录输出到 JSP 上。我如何为输出目的引用每个单独的字段?即
<c:forEach items="${claimstable}" var="clms">
${clms.field1}
${clms.field2}
${clms.field3}
</c:forEach>
我尝试使用 ArrayList、TreeSet 和 HashMap 在 JSP 上输出 table 内容,使用 servlet 将请求属性转发到 JSP,但是我无法直接访问每个字段,我只能将内容输出为一个长字符串。
我是否需要为我的 table 字段名创建一个 class 并继续这样做?或者什么?
非常感谢任何帮助。
首先在请求中设置值,然后尝试在 jsp
中访问它在您的 servlet 中执行
List<List<Person>> claimstable= getItSomehow();
request.setAttribute("claimstable", claimstable);
索赔表将可在 jsp 中访问。 每个循环使用 double 来遍历单个 String
我采用的解决方案是使用 setter 和 getter 创建我的自定义 table 对象,将每个字段创建为对象内的 属性 即
public class ClaimTableProperties {
private String zuonr;
private String bktxt;
private String blart;
private String belnr;
...etc.
然后将每个字段的 JCoTable 的每一行映射到一个数组列表:
static ArrayList<ClaimTableProperties> claimstable = new ArrayList<ClaimTableProperties>();
JCoTable claims = function.getTableParameterList().getTable("CLAIM_DETAILS");
claims.firstRow();
int rownums = claims.getNumRows();
ClaimTableProperties[] ctp = new ClaimTableProperties[rownums];
for (int i = 0; i < rownums; i++) {
ctp[i] = new ClaimTableProperties();
ctp[i].setBelnr(claims.getString("BELNR"));
ctp[i].setBktxt(claims.getString("BKTXT"));
ctp[i].setZuonr(claims.getString("ZUONR"));
ctp[i].setBlart(claims.getString("BLART"));
claimstable.add(ctp[i]);
claims.nextRow();
} // End for
在您的 servlet 中,设置属性以便您的 jsp
知道它ArrayList<ClaimTableProperties> claims = dgc.returnClaimsTable();
request.setAttribute("claimstable", claims);
然后在jsp上,使用JSTL输出每个必填字段:
<table>
<c:forEach items="${claimstable}" var="claim">
<tr>
<td>${claim.belnr}</td>
<td>${claim.bktxt}</td>
<td>${claim.zuonr}</td>
<td>${claim.blart}</td>
</tr>
</c:forEach>
</table>