0

我创建了一个 java webapp,它将一个自定义表(每条记录由 13 个字段组成)从 SAP 后端读取到 webapp 中的 JCoTable 中,这一切都很好。

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

<c:forEach items="${claimstable}" var="clms">
      ${clms.field1}
      ${clms.field2}
      ${clms.field3}  
</c:forEach>

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

我是否需要创建一个表字段名类并以这种方式进行?要不然是啥?

非常感谢任何和所有帮助。

4

2 回答 2

2

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

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>  
于 2017-05-05T09:25:40.403 回答
0

先设置请求中的值,然后尝试在jsp中访问

在您的 servlet 中执行此操作

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

声明表可以在 jsp 中访问。对每个循环使用双精度来遍历单个字符串

于 2017-05-03T16:23:49.027 回答