我的页面大致是这样的:
“一条记录”对应一个“修改”的超链接,我想实现:点击这个超链接就得到这条记录的ID,进而查出这条记录到另一(修改)页面去显示,现在问题是我不知道怎么得到这个ID,请高高高手指教,头一个页面的ID已经获得给我放在一个隐藏域里面了,请问下一步该怎么操作?

解决方案 »

  1.   

    假设记录的变量为 a
    修改的链接这样写
    xxx.do?id=a.getId,显式地将a这个变量的id传递过去即可。
      

  2.   

    我试试:Fly_m大哥的方法,先谢了!
      

  3.   

    是这样的,Fly_m大哥,我用的是Struts2,我原来写的是这样:<s:a method="toUpdatePage" action="indexAction">修改</s:a>,访问的时候是这样:http://localhost:8081/sshorder/indexAction.action 访问的。如果用xxx.do?id=a.getId这样的方法,是不是还要在Action类中定义个叫id的属性啊?
      

  4.   

    如果你是一个页面直接传给另一个页面 就用3l的方法 xxx?id=xxx,然后在另一个页面用<s:parameters value="id">取到,也可以用EL表达式${param.id}。
    如果你是jsp传给action,就在action里建立一个String id,加上get set方法,就可以获取到了,然后再导向另一个jsp就可以直接在valuestack里取到.
      

  5.   

    非常感谢:洛城小约!我理解您的意思,但是我的action里面存的是JavaBean,并不像在action里再增加一个id的属性,怎么做呢?
      

  6.   

    对不起,洛城小约!我搞晕了,我那个JavaBean中确实有一个字段叫id,不用另外定义了呵呵!现在我把A页面改成这样:<s:a href="updateAction?updateForm.orderDto.orderID=orderID">修改</s:a>
    然后在UpdateAction中这样写:
    public class UpdateAction extends ActionSupport {
    private UpdateService updateService;
    private UpdateForm updateForm; public UpdateService getUpdateService() {
    return updateService;
    } public void setUpdateService(UpdateService updateService) {
    this.updateService = updateService;
    } public UpdateForm getUpdateForm() {
    return updateForm;
    } public void setUpdateForm(UpdateForm updateForm) {
    this.updateForm = updateForm;
    } public String update() {
    if (updateForm == null) {
    updateForm = new UpdateForm();
    }
    updateForm.setOrderDto(updateService.getByID(updateForm));
    return SUCCESS;
    }
    }
    在B页面上这样获取:
    <s:textfield value="updateForm.orderDto.orderName" name="updateForm.orderDto.orderName" />
    这样行吗?
      

  7.   

    你还是在action加个id属性吧- - 方便很多。
    如果不想添加id属性可以通过实现modelDriven接口实现
      

  8.   

    你这样应该不行
    应该让UpdateAction实现ModelDriven接口public class UpdateAction extends ActionSupport implements ModelDriven<UpdateForm>{
        private UpdateService updateService;
        private UpdateForm updateForm = new UpdateForm(); @Override
    public UpdateForm getModel() {
    return updateForm;
    }    public UpdateService getUpdateService() {
            return updateService;
        }    public void setUpdateService(UpdateService updateService) {
            this.updateService = updateService;
        }    public UpdateForm getUpdateForm() {
            return updateForm;
        }    public void setUpdateForm(UpdateForm updateForm) {
            this.updateForm = updateForm;
        }    public String update() {
            if (updateForm == null) {
                updateForm = new UpdateForm();
            }
            updateForm.setOrderDto(updateService.getByID(updateForm));
            return SUCCESS;
        }
    }
      

  9.   

    把隐藏的值一起传到要修改的页面去就可以了,在action中将记录查出在修改页面可以显示,再对其进行提交修改操作就可以了
      

  10.   


    既然你使用的struts2,那么你得到一个列表的时候,就会获得该俩表中每条记录的所有信息,加入列表为 alist,那么记录的id名称为bid,则它的值为 ****.getId();  则在你的修改连接里就可以这么做,update.action?bid=<s:prpperty type='****.getId()' />   然后就是在你的action种接收该值了,
    在 action中  你要申明一个变量 bid, 注意写上setter和getter方法,这样的话就可以直接写sql语句了, sql = " update tablename set .....  where bid = " + bid;   好了 就这样就可以解决了……
      

  11.   

    在action里直接用request 获得就可以了 然后查询id对应的记录 在传递到修改页面就可以了
      

  12.   

    如果你在页面能获取到,struts2的action中定义变量 id  提供get set 方法  自然action中的Id就有值了!!!