刚学jsp,管理系统关于表单提交的问题

刚学jsp,管理系统关于表单提交的问题

问题描述:

我刚学jsp,现在在试着做一个设备管理系统,功能都实现了,但是现在想再扩充一下功能。
就是我有一个设备信息页面,是以表格形式在jsp页面显示出来的,然后我要点击修改信息,转到修改信息的页面,该页面是以表单提交的方式修改,在action中调用方法执行。但是现在有一个问题就是有些信息字段是有可能不需要修改的,我现在就是想在修改页面的表单空格中显示待修改的数据,这样的话就会比较方便,但是我不知道感怎样做。具体代码如下:

 

这是设备信息表,在一个jsp页面显示。

<tbody>
<%

java.util.List<E_BoardInformation> E_BoardInformationList =(List)session.getAttribute("E_BoardInformationList");
  for(int i=0;i<E_BoardInformationList.size();i++){
      E_BoardInformation ebi=E_BoardInformationList.get(i);
  
%>
<tr>
<td><%=ebi.getEquipment_board_id()%></td>
<td><%=ebi.getEquipment_board_model()%></td>
<td><%=ebi.getEquipment_board_96StepPartNum()  %></td>
<td><%=ebi.getEquipment_board_PCB19StepPartNum() %></td>
<td><%=ebi.getEquipment_board_sort() %></td>
<td><%=ebi.getEquipment_board_amount() %></td>
<td><%=ebi.getEquipment_board_description() %></td>
<td><%=ebi.getEquipment_board_status() %></td>
<td><%=ebi.getEquipment_board_custodian() %></td>
<td><%=ebi.getEquipment_board_lender() %></td>
<td><%=ebi.getEquipment_board_lenddate() %></td>
<td><%=ebi.getEquipment_board_expectreturndate() %></td>
<td><%=ebi.getEquipment_board_returndate() %></td>
<td><%=ebi.getEquipment_board_lendhonor() %></td>
<td><%=ebi.getEquipment_board_remark1() %></td>
<td><%=ebi.getEquipment_board_remark2() %></td>
<td><%=ebi.getEquipment_board_remark3() %></td>
<td><a href="E_BoardIDAction.AdvantechEMS?id=<%=ebi.getEquipment_board_id()%>">删改</a>
</tr>
<%}%>

 

 

 

点击“删改”之后,转到这个页面提交表单,到action调用方法执行。

 

<table width="300" height="100" border="3" bgcolor="red">
    <caption>更新设备信息</caption>
    <tr><td><label>状        态 :</label><input type="text" name="equipment_board_status" />  <br/></td></tr>
    <tr><td><label>保   管   人 :</label><input type="text" name="equipment_board_custodian"/><br/></td></tr>
    <tr><td><label>借   出   人 :</label><input type="text" name="equipment_board_lender"/><br/></td></tr>
    <tr><td><label>借 出 时  间 :</label><input type="text" name="equipment_board_lenddate"/><br/></td></tr>
    <tr><td><label>预计归还时间:</label><input type="text" name="equipment_board_expectreturndate"/><br/></td></tr>
    <tr><td><label>归 还 时  间 :</label><input type="text" name="equipment_board_returndate"/><br/></td></tr>
    <tr><td><label>诚   信   度 :</label><input type="text" name="equipment_board_lendhonor"/><br/></td></tr>
    <tr><td><label>备        注 :</label><input type="text" name="equipment_board_remark1"/><br/></td></tr>
   
     <input type="submit" value="确定"/>
     <input type="reset" value="重新输入"/>
     <br>

 

我想在这个表单中显示上一个页面相应的信息,这样便于方便操作,有人告诉我说把值取进来,但是我不知道该怎样取。。。。

各位,有劳了。。。。


问题补充:
回答Rowen  这种办法我一开始就想过,但是,这样的话,就要在这个提交页面重新new一个List对象,如果有多条数据的话,这个显示能不能达到呢?


回答381573578,我现在是这样采取的,就是点击修改之后,转到一个action,把id传入Session中,然后转到修改的jsp页面提交表单,如果按照你的方式,我是不是也可以把该id对应的字段数据都保存在Session中,然后在jsp页面采取类似于上面一位朋友的方式new一个对象之后取出呢?
问题补充:
To 381573578,嗯,机制明白了,但E_BoardInformationLis是指什么呢?以一个List对象来存放吗?${E_BoardInformationLis.字段名 }是什么呢?我真的没有这个基础,还望写详细一点,不胜感激,就在我的代码上面写一个简单的例子,多谢了。

这是我获取id的action:

public String execute(HttpServletRequest request, HttpServletResponse response)
{
String id=request.getParameter("id");
request.getSession().setAttribute("currentID", id);

                return "/sureBoard.jsp";
}

在sureBoard.jsp页面点击确定之后就会转到提交表单页面。

另外,Rowen的方法我刚才试了,可以显示数据,但是有多少条数据就会有多少个表单,这与for循环有关,因为并没有说明id是哪一个。

可以这样:加个VALUE,其他雷同;

状 态 :" [/color]/>

要修改哪一项,就把那一项的id值传到action里,在action中找出该id所对应的每一项,然后保存到attribute里,该action跳转到修改的jsp页面,在jsp页面中用el表达式取出来就可以了。

只传一个要修改的id进去,然后把这个id对应的其它字段的值找出来之后放attribute里就行了,request.setAttribute("E_BoardInformationLis", E_BoardInformationLis);然后按你 说的在jsp取出来。${E_BoardInformationLis.字段名 }。没有必要放session里吧,

那你就一个删改按钮加一个表单,还加个id的隐藏域,你按的哪个删改按钮就知道提交的是哪个id了。

我之前一直被开源报表折磨得死去活来 :cry: :cry: ,遇到问题都没人找,现在改用帆软报表后就瞬间有了强大的技术后盾!