使用EL <c:foreach>输出JCoTable行

时间:2017-05-03 15:33:36

标签: java el jco sapjco3

我创建了一个java webapp,它从SAP后端读取自定义表(每个记录包含13个字段)到webapp中的JCoTable,这一切都正常。

我的要求是使用EL将JCoTable上的所有记录输出到JSP上。为了输出目的,我如何引用每个字段?即。

compile 'com.android.support:appcompat-v7:25.0.2'

我尝试使用ArrayList,TreeSet和HashMap在JSP上输出表内容,使用servlet将请求属性转发到JSP,但是我不能直接访问每个字段,我只能输出内容为一根长串。

我是否需要创建一个表字段名的类并按此方式进行操作?或者是什么?

任何和所有帮助都非常感激。

2 个答案:

答案 0 :(得分:1)

我使用的解决方案是使用setter和getter创建自定义表的对象,将每个字段创建为对象中的属性,即

public class ClaimTableProperties {


private String zuonr;
private String bktxt;
private String blart;
private String belnr; 
...etc.

然后将每个字段的JCoTable的每一行映射到一个arraylist:

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>  

答案 1 :(得分:0)

首先在请求中设置值,然后尝试在jsp

中访问它

在您的servlet中执行

List<List<Person>> claimstable= getItSomehow();
request.setAttribute("claimstable", claimstable);

可以在jsp中访问claimstable。 为每个循环使用double来遍历单个String