Java 使用EL<;输出可旋转行;C:forEach>;

Java 使用EL<;输出可旋转行;C:forEach>;,java,el,jco,sapjco3,Java,El,Jco,Sapjco3,我已经创建了一个JavaWebApp,它将一个自定义表(每个记录包含13个字段)从SAP后端读取到webapp中的一个JCoTable中,所有这些都可以正常工作 我的要求是使用EL将JCoTable上的所有记录输出到JSP上。如何为输出目的引用每个字段?i、 e <c:forEach items="${claimstable}" var="clms"> ${clms.field1} ${clms.field2} ${clms.field3} &

我已经创建了一个JavaWebApp,它将一个自定义表(每个记录包含13个字段)从SAP后端读取到webapp中的一个JCoTable中,所有这些都可以正常工作

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

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

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

我是否需要创建一个表字段名类并按这种方式继续?还是什么


非常感谢所有帮助。

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

在servlet中执行此操作

List<List<Person>> claimstable= getItSomehow();
request.setAttribute("claimstable", claimstable);
List claimstable=getItSomehow();
setAttribute(“claimstable”,claimstable);
可以在jsp中访问claimstable。
使用double for each循环遍历单个字符串,首先在请求中设置值,然后尝试在jsp中访问它

在servlet中执行此操作

List<List<Person>> claimstable= getItSomehow();
request.setAttribute("claimstable", claimstable);
List claimstable=getItSomehow();
setAttribute(“claimstable”,claimstable);
可以在jsp中访问claimstable。
使用double for each循环遍历单个字符串

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

public class ClaimTableProperties {


private String zuonr;
private String bktxt;
private String blart;
private String belnr; 
...etc.
然后将JCoTable per字段的每一行映射到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
static ArrayList claimstable=new ArrayList();
JCoTable claims=function.getTableParameterList().getTable(“索赔详细信息”);
索赔。第一行();
int rownums=claims.getNumRows();
ClaimTableProperties[]ctp=新的ClaimTableProperties[rownums];
对于(int i=0;i
在servlet中,设置属性,以便jsp知道该属性

ArrayList<ClaimTableProperties> claims = dgc.returnClaimsTable();
request.setAttribute("claimstable", claims);
arraylistclaims=dgc.returnClaimsTable();
request.setAttribute(“claimstable”,索赔);
然后在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>  

${claim.belnr}
${claim.bktxt}
${claim.zuonr}
${claim.blart}

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

public class ClaimTableProperties {


private String zuonr;
private String bktxt;
private String blart;
private String belnr; 
...etc.
然后将JCoTable per字段的每一行映射到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
static ArrayList claimstable=new ArrayList();
JCoTable claims=function.getTableParameterList().getTable(“索赔详细信息”);
索赔。第一行();
int rownums=claims.getNumRows();
ClaimTableProperties[]ctp=新的ClaimTableProperties[rownums];
对于(int i=0;i
在servlet中,设置属性,以便jsp知道该属性

ArrayList<ClaimTableProperties> claims = dgc.returnClaimsTable();
request.setAttribute("claimstable", claims);
arraylistclaims=dgc.returnClaimsTable();
request.setAttribute(“claimstable”,索赔);
然后在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>  

${claim.belnr}
${claim.bktxt}
${claim.zuonr}
${claim.blart}

我尝试在servlet中创建ArrayList,并通过request.setAttribute将其发送到jsp,但我无法访问每个字段。我应该创建一个ArrayList吗?您是否正在将servlet转发给编写jsp?请共享您的servlet。我可以访问jsp中的“claimstable”(类似于上面的设置),但只能作为连续字符串,因为我将其设置为ArrayList,但是我需要访问构成表格的每个字段。您需要将其用作二维矩阵。,例如,将字符串列表列为
List
,并根据您的要求将您的条目设置到对象中。我已尝试在servlet中创建ArrayList,并通过request.setAttribute将其发送到jsp,但我无法访问每个字段。我应该创建一个ArrayList吗?您是否正在将servlet转发给编写jsp?请共享您的servlet。我可以访问jsp中的“claimstable”(类似于上面的设置),但只能作为连续字符串,因为我将其设置为ArrayList,但是我需要访问构成表格的每个字段。您需要将其用作二维矩阵。,例如,将字符串列表列为
List
,并根据您的要求将您的条目设置到对象中。