struts2页面传list进action效率慢

orange001425 2014-04-22 05:08:18
RT:

页面的list传回到action 在经过拦截器解析页面传入参数进入action间耗时很久
页面有一个list,list长度为10,list里面的对象有15个属性 遍历后相当于页面就有150个input,而提交表单后会进入struts的params拦截器去组合这些input里的参数set到后台的list里面去 这个动作耗时太久了 求教各位大大从页面传list回到后台怎么实现比较有效率 我用的是下面这中list传递方法

<s:iterator value="goodsInBillTDetailTs" status="st">
<tr name="inBillDetail" class="inBillDetail">
<td align="center" name="parameter">
${st.count}
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].id"
value="%{goodsInBillTDetailTs[#st.index].id}"></s:hidden>
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].goodsId"
value="%{goodsInBillTDetailTs[#st.index].goodsId}"></s:hidden>
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].goodsSku"
value="%{goodsInBillTDetailTs[#st.index].goodsSku}"></s:hidden>
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].shortCode"
value="%{goodsInBillTDetailTs[#st.index].shortCode}"></s:hidden>
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].typeId"
value="%{goodsInBillTDetailTs[#st.index].typeId}"></s:hidden>
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].typeName"
value="%{goodsInBillTDetailTs[#st.index].typeName}"></s:hidden>
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].supplierId"
value="%{goodsInBillTDetailTs[#st.index].supplierId}"></s:hidden>
<s:hidden
name="goodsInBillTDetailTs[%{#st.index}].supplierName"
value="%{goodsInBillTDetailTs[#st.index].supplierName}"></s:hidden>
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].supplyArea"
value="%{goodsInBillTDetailTs[#st.index].supplyArea}"></s:hidden>
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].remark"
value="%{goodsInBillTDetailTs[#st.index].remark}"></s:hidden>
<s:hidden
name="goodsInBillTDetailTs[%{#st.index}].departmentId"
value="%{goodsInBillTDetailTs[#st.index].departmentId}"></s:hidden>
<s:hidden
name="goodsInBillTDetailTs[%{#st.index}].creatorAccount"
value="%{goodsInBillTDetailTs[#st.index].creatorAccount}"></s:hidden>
<s:hidden name="goodsInBillTDetailTs[%{#st.index}].createTime"
value="%{goodsInBillTDetailTs[#st.index].createTime}"></s:hidden>
</td>
<td align="center" name="goodsNo">
<s:textfield name="goodsInBillTDetailTs[%{#st.index}].goodsNo"
value="%{goodsInBillTDetailTs[#st.index].goodsNo}"></s:textfield>
</td>
<td align="center" name="goodsName">
<s:textfield
name="goodsInBillTDetailTs[%{#st.index}].goodsName"
value="%{goodsInBillTDetailTs[#st.index].goodsName}">
</s:textfield>
</td>
<td align="center" name="unit">
<s:textfield name="goodsInBillTDetailTs[%{#st.index}].unit"
value="%{goodsInBillTDetailTs[#st.index].unit}"></s:textfield>
</td>

<td align="center" name="price">
<s:textfield name="goodsInBillTDetailTs[%{#st.index}].price"
value="%{goodsInBillTDetailTs[#st.index].price}"></s:textfield>
</td>
<td align="center" name="stock">
<s:textfield name="goodsInBillTDetailTs[%{#st.index}].stock"
value="%{goodsInBillTDetailTs[#st.index].stock}"></s:textfield>
</td>
<td name="money">

<s:if test="price!=null&&stock!=null">
<fmt:formatNumber value="${price*stock}" type="number" groupingUsed="false"> </fmt:formatNumber>
</s:if>
</td>
<td>
<s:if test="goodsId!=null&&model.isCheck!=1">
<img src="/images/ico/fam/delete.png"
onclick="delBillDetail('${st.index}')" />
</s:if>
</td>
</tr>
</s:iterator>
...全文
415 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxuebao123 2014-04-25
  • 打赏
  • 举报
回复
批量修改? 这很多控件,肯定慢啊,改代码吧。
别闹腰不好 2014-04-25
  • 打赏
  • 举报
回复
就这么点业务会慢? 硬件配置的问题吧 小霸王。
Fate- 2014-04-25
  • 打赏
  • 举报
回复
你修改也只是修改一条数据 不能全部都修改吧 还是不要穿list了
I.T10001 2014-04-25
  • 打赏
  • 举报
回复
参数为何要这样传,看着就乱
Juedaifanghua 2014-04-25
  • 打赏
  • 举报
回复
效率。。。。帮顶吧
jackson_fighting 2014-04-25
  • 打赏
  • 举报
回复
能否改成 json封装数据、 ajax提交下?
翘班党 2014-04-24
  • 打赏
  • 举报
回复
1。是不是拦截器业务过于复杂 2 .hidde中的值存储到另外一个list中,不进行传值操作。jsp页面 只提交页面需要的7个属性呢
tony4geek 2014-04-24
  • 打赏
  • 举报
回复
解决了没啊。。
ShiningWill 2014-04-24
  • 打赏
  • 举报
回复
实在要做的话就 所有参数拼成json ajax传给后台吧,别直接submit了
orange001425 2014-04-22
  • 打赏
  • 举报
回复
引用 4 楼 defonds 的回复:
你的拦截器做了很多业务吗
没有什么业务啊 就是启用了默认的拦截器而已啊
Defonds 2014-04-22
  • 打赏
  • 举报
回复
你的拦截器做了很多业务吗
小灯光环 2014-04-22
  • 打赏
  • 举报
回复
引用 2 楼 orange001425 的回复:
[quote=引用 1 楼 wlwlwlwl015 的回复:] 你没必要传全部的属性啊,那样必然很慢,你每个对象只传一个id,然后用的时候load就行了。
主要是我页面修改的东西要update啊...[/quote] 那就是设计问题了,看着很乱,建议你根据业务分一下,不要全部放在一个请求中去处理。
orange001425 2014-04-22
  • 打赏
  • 举报
回复
引用 1 楼 wlwlwlwl015 的回复:
你没必要传全部的属性啊,那样必然很慢,你每个对象只传一个id,然后用的时候load就行了。
主要是我页面修改的东西要update啊...
小灯光环 2014-04-22
  • 打赏
  • 举报
回复
你没必要传全部的属性啊,那样必然很慢,你每个对象只传一个id,然后用的时候load就行了。

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧