如何在jsp中通过accessbean从DB中获取数据

时间:2012-01-17 07:17:27

标签: wcs

将数据添加到db(提交数据)后,不在AccessBean中获取最新插入的数据。但是当我再次回到jsp时,数据可用。我不知道如何解决这个问题。

下面是cmdImpl中的插入代码

AddressAccessBean add  = new AddressAccessBean(Long.parseLong(memberid),shipid);
                    shipBean.setInitKey_ShipToCodeName(shipid);

   add.setAddressField2(shipBean.getName()+shipBean.getCity()+shipBean.getState());                  
   add.setAddressField1("WD");

   add.setMemberId(memberid);

   add.setAddressField3(shipid);

   add.setStatus("P");

   add.commitCopyHelper();

提交data.trying后通过accessbeans及其finder方法获取jsp上的数据并在jsp中显示到表中

<%
String[] member_Id = (String[])request.getAttribute("memberid");                        
String memberId=member_Id[0];
AddressAccessBean add = new AddressAccessBean();
java.util.Enumeration enu = add.findByMemberId(Long.parseLong(memberId));
while (enu.hasMoreElements()) {
      AddressAccessBean as = (AddressAccessBean) enu.nextElement();
      if (as.getAddressField3() != null && as.getAddressField1().equals("WD")) {
            com.ibm.commerce.extension.objects.xShipToCodeAccessBean bb = new com.ibm.commerce.extension.objects.xShipToCodeAccessBean().findByShipToCodeName(as.getAddressField3());
                                %>
<TR>
<Td ALIGN="LEFT" width="20%"><%=as.getAddressField2()%></Td>
<Td ALIGN="LEFT" width="20%"><%=bb.getName()%></Td>
<Td ALIGN="LEFT" size="15%"><%=bb.getShipToCodeName()%></Td>
<Td ALIGN="LEFT" size="10%"><%=bb.getCity()%></Td>
<Td ALIGN="LEFT" size="10%"><%=bb.getState()%></Td>
<Td ALIGN="LEFT" size="10%"><%=bb.getSoldTo()%>
</Td>

1 个答案:

答案 0 :(得分:0)

如果您正在向JSP发送,则通过实体/访问bean插入的数据对于查找程序查询将不可见。即,如果要转发到JSP而不是重定向,则只有在执行JSP之后才会提交事务。提交事务后,实体bean更改将写入db。这就是为什么在尝试使用查找程序查询时无法看到插入的原因。

您有两种选择: -

  1. 将JSP转换为重定向JSP。
  2. 使用AddressAccessBean的setInitKey方法,使用地址id获取数据