我点击一个页面中的修改链接,将goodsId的值传到一个action中,然后根据这个值,从数据库中查出一条数据,并把它们依次显示在testfield中,显示正常。但是当我修改testfield中的数据并且提交表单想更新这个数据的时候,action从testfield中读取的数据都正常除了一个goodsId没读出来。我用同样的方法,为什么就单单那一个数据没读出来呢?请帮我看看问题出在哪里,谢谢
------------------------------------------------------------
点击修改链接后将goodsId的值传到个action中<s:iterator value="list">
    
    <tr>
      <td><s:property value="goodsId"/></td>
      <td><s:property value="goodsNam"/></td>
      <td><s:property value="warehouseId"/></td>
      <td><s:property value="description"/></td>
      <td><s:property value="number"/></td>
      <td><s:property value="cost"/></td>
      <td><s:property value="guestNam"/></td>
      <td><s:property value="changeDate"/></td>
      
      <s:url action="searchOne" id="url1">
    <s:param name="goodsId" value="goodsId" />
  </s:url>
     <td> <div align="center"><a href=" <s:property value="#url1"/>">修改 </a></div> </td> 

     
     <s:url action="deleteGoods" id="url2">
    <s:param name="goodsId" value="goodsId" />
  </s:url>
     <td> <div align="center"><a href=" <s:property value="#url2"/>">删除</a></div> </td>   <s:property value="#go.goodsId"/>
    </tr>
    </s:iterator>
  </table>
-------------------------------------------------------------
接收goodsId并查找相关数据的actionpublic String searchOne() throws SQLException{

setGoods(goodsFacade.searchOne(goodsId));//这个方法最后返回的是一个goods类型

return "success";
}------------------------------------------------------------
显示testfield的页面<s:form action="changeGoods">
<%--加入token标签,避免重复提交--%>
<s:token />
<%--文本框标签,其中name属性指定传值参数,label属性指定该文本框标签名--%>
<tr>
<%--<s:textfield name="goodsId" label="商品编号"/> --%>


<s:textfield name="goodsId" label="商品编号:" disabled="true" value="%{goods.getGoodsId()}" />
<s:textfield name="goodsNam" label="商品名称:" value="%{goods.getGoodsNam()}"/></tr>
<s:textfield name="warehouseId" label="仓库号:" value="%{goods.getWarehouseId()}"/>
<s:textfield name="description" label="商品描述:" value="%{goods.getDescription()}"/>
<s:textfield name="number" label="数量:" value="%{goods.getNumber()}"/>
<s:textfield name="guestNam" label="供货商:" value="%{goods.getGuestNam()}"/>
<s:textfield name="cost" label="成本价:" value="%{goods.getCost()}"/>
<s:textfield name="changeDate" disabled="true" label="最新更新日期" value="%{goods.getChangeDate()}"/>
<s:submit value="修改" />
<s:reset value="重置" />

</s:form>------------------------------------------------------------------------------------------读取数据的action,这里面就goodsId没读出来,别的都读出来了public String changeGoods()throws SQLException{ Goods goods=new Goods();

System.out.println("goodsId***=["+getGoodsId()+"]");

goods.setGoodsId((int)getGoodsId());
goods.setGoodsNam(getGoodsNam());
goods.setWarehouseId((int)getWarehouseId());
goods.setDescription(getDescription());
goods.setNumber((double)getNumber());
goods.setCost((double)getCost());
goods.setGuestNam(getGuestNam());
goods.setChangeDate(time); try {
goodsFacade.changeGoods(goods); //setGoods(goods);
return"changeSuccess";
} catch (Exception e) {
e.printStackTrace();
return "changeError";
}
}-------------------------------------------------------------------------------

解决方案 »

  1.   

    有啊,都取出来的,就是在testfield中的goodsId里是有值的,但传到另一个jsp页面时就没传过去,但别的goodsNam什么的都传过来了
      

  2.   

    显示testfield的页面 
    <s:textfield name="goodsId" label="商品编号:" disabled="true" value="%{goods.getGoodsId()}" /> 
    将这个标签的disabled="true"去掉,加了它,在Action中值就取不到了,可以更改为readonly="true"
      

  3.   

    这个必须要disabled没办法,我后来用session解决了