首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

struts 用logic:iterate在页面展示数据后怎样得到logic:iterate的某条数据

2011-11-16 
struts 用logic:iterate在页面显示数据后怎样得到logic:iterate的某条数据小弟最近刚学struts,请各位高人

struts 用logic:iterate在页面显示数据后怎样得到logic:iterate的某条数据
小弟最近刚学struts,请各位高人指点一下。

我现在正在做页面,通过action将从数据查询的数据用logic:iterate显示到一个jsp页面。
页面代码如下:

    <table   border= "1 "   width= "50% ">
    <tr   bgcolor= "#99aa99 ">
    <td   align= "center "   colspan= "4 ">
    <b> <font   size= "6 "   face= "隶书 "> 准驾车型 </b>
  </td>
    </tr>
    <tr   bgcolor= "#99cc99 ">
    <td   align= "center ">
    <b> 编号 </b>
  </td>
  <td   align= "center "   colspan= "3 ">
    <b> 名称 </b>
  </td>
    </tr>
    <logic:iterate   id= "zhujiachexing "   name= "data "   type= " ">
    <tr>
    <td   align= "center "   width= "50 ">
   
    <bean:write   name= "zhujiachexing "   property= "number "/>
 
  </td>
  <td   align= "center ">
 
  <input   type= "text "   size= "40 "   name= "name "   value= " <bean:write   name= "zhujiachexing "   property= "name "/> "   style= "text-align:right; ">
 
  </td>
<td   align= "center "   width= "60 ">
  <html:link   action= "Jsp/Jibenxinxi/Zhunjiachexing/updatazhunjiachexing "   styleClass= "caozuo "> 修改 </html:link>
</td>
<td   align= "center "   width= "60 ">
  <html:link   action= "Jsp/Jibenxinxi/Zhunjiachexing/deletezhunjiachexing "   styleClass= "caozuo "> 删除 </html:link>
  </td>
    </tr>
    </logic:iterate>  
    </table>

我是想做修改,删除和新建。

修改和删除用link调用两个action处理数据,但现在根本得不到变量值,请高人指点一下,小弟万分感谢。

还有新建,我希望点击新建,jsp页面的table就会自动创建一行用于用户录入数据
然后还有个按钮,点击后,将调用action将数据真正录入到数据库。

这几个问题已经困扰我快一周了,我实在是没有能力解决,希望大家帮帮我。

我现在没有分,我是刚注册的,有分以后不会忘记大家的,我先谢谢大家了。

[解决办法]
首先 <logic:iterate id= "zhujiachexing " name= "data " type= " "> 处type不能 " "应该有个确定的类型
其次 <html:link action= "Jsp/Jibenxinxi/Zhunjiachexing/deletezhunjiachexing "处,我没有使用过link标签的action的,我用的是 <html:link page= "xxx.do " paramId= " " paramName= " " paramProperty= " "> 其中paramId是参数名称paramName在你这就是zhujiachexing,paramProperty应该是你的number了,page属性应该换成struts的action地址
[解决办法]
修改也可以,不过的给没有修改该连接加一个onclick事件
通过该事件获得对应文字域的值,并修改自身的url(追加参数)
以上方案一
方案二就是每行都需添加到一个 <html:form> 中这样可以将链接修改为提交按钮
如果不想修改为按钮可以在链接上加入onclick事件,事件就提交对应的form

[解决办法]
你可以建一个action对应多个操作,比如你这里面的 "删除 ", "修改 ", "新建 ",只需要对应一个action只需要在这个action里用判断语句对一个参数进行判断就能进行相应的操作了,往下看.



因为iterate是依次枚举,你想对应某个记录进行操作,那你就把操作的连接写进iterater里不就OK了?比如:
<logic:iterate id = "aaa " name = "bbb " > 不需要写type没有特殊要求每次都没写过
<bean:write xxxxxxx/>
<a href = "xxx.do?disposeType=001&id= <bean:write name= "aaa " property= "id "> "> 删除 </a> //超联结里的参数disposeType就是处理类型,可以在action里判断一下这个参数来决定进行什么操作,比如disposeType=002代表新建.id就是对应的那条记录的代理主键嘛,是数据库里的唯一标示,那么在action里只要有个这个id就能唯一地取出任何一个记录进行处理了.
</logic:iterate>

如果想要新建时候出现一个表单,你可以一开始就把表单写好,比如我一般都写在一个单独的table里,然后把他隐藏,想要新建的时候用javascript把这个table显示出来不就好了
参考:

一个连接或按钮里面加 onclick= "display() " //显示那个表单table

<table style= "display:none " id= "displayNewTable "> //表单table,一开始隐藏在页面上
表单项
</table>

javascript内容

function display(){
document.getElementById( "displayNewTable ").style.display= " ";
}
这样那个table 就显示出来,你往里填吧,填完点这个table里的提交按钮就可以提交这个表单了
,但是我记得action好象只能绑定一个form.java,那就把这个form.java里写上所有要在这个action里调用的属性吧.
[解决办法]
定义一个隐藏域,将你修改的内容存到隐藏域中,提交的时候取隐藏域的内容
[解决办法]
<logic:iterate> 标签外面肯定要加个form标签的,提交地址就是你的修改action

主要问题就是批量修改,一种就是利用表单数组,你struts配置文件里面formbean定义一个java.lang.String[]数组接受

或者提交之前把所有要修改的记录的各个属性,各自合并成一个字符串,然后到服务端拆解

最后再通过循环更新

热点排行
Bad Request.