显示标记库:允许用户输入

时间:2014-03-30 20:07:27

标签: jsp user-input struts-1 displaytag

我正在使用带有struts 1.3的Display tag library

我会以这样的方式显示数据,即用户可以更改最后一列中的值(即最后一列是可编辑的)。

我找到this,但我不会使用复选框。

如果有可能,我会很好地解释如何实现这一目标。

我是否要使用装饰器?我怎么知道用户编辑了哪些行?

1 个答案:

答案 0 :(得分:0)

我手动做了这种。它可能有所帮助。

为该可编辑列指定名称并在列中放置一个文本框。

<table>
    <tr><td><input type="text" name="editable"/></td</td>
    <tr><td><input type="text" name="editable"/></td</td>
    <tr><td><input type="text" name="editable"/></td</td>
</table>

当您提交表单并在servlet中执行httpRequest.getParameter("editable")时,您应该按照显示的顺序在文本框中获取数组/值列表。

然后,您可以执行先前的搜索,以显示数据并将其与上面的列表进行比较。

String[] editedList = httpRequest.getParameter("editable");
Object[] originalList = dao.getList(...);

List<Object> editedItems = new arrayList<Object>();

for(int i=0; i < originalList; i++){
    if(editedList[i].equalsoriginalList[0].getProp()){
        //No changes have been made
    }else{
        //Changes have been made.
        editedItems.add(originalList[i]);
    }
}

有了这个,你最终会得到编辑过的对象列表editedItems