条带形式,保存数据以供下次程序执行时使用

时间:2014-11-21 14:07:12

标签: jsp jstl stripes

我正在Stripes中创建一个表单。表单(名称和代码)中有两个文本字段,应由用户填写。用户输入数据后,通过单击添加按钮,我希望数据显示在同一页面上(让我们说在添加按钮下),用户可以输入另一个数据,这样当下次点击按钮时他可以看到所有数据数据从同一页面开头输入,仍然可以输入更多数据。 我使用了一个arraylist来保存列表中的用户输入,并通过c:forEach在jstl中迭代它。 问题是arraylist不保存数据,当我输入新数据时,它会覆盖以前的数据。我不知道如何/在何处保存数据,以便每次用户都可以添加更多数据,同时在页面中查看所有数据。

ClassActionBean.java

package com.example.action;

public class ClassActionBean implements ActionBean {
private ActionBeanContext context;
private String name;
private String code;
private ArrayList<String> list = new ArrayList<String>();

@DefaultHandler
public Resolution showData() {
    list.add(getName());
    list.add(getCode());
    return new ForwardResolution("/WEB-INF/jsp/import.jsp");
    //return new RedirectResolution("/Class.action");
}

public ActionBeanContext getContext() { 
    return context; 
}

public void setContext(ActionBeanContext context) { 
    this.context = context; 
}

public ArrayList<String> getList() {
    return list;
}

public void setList(ArrayList<String> list) {
    this.list = list;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getCode() {
    return code;
}

public void setCode(String code) {
    this.code = code;
}

}

import.jsp

<%@page contentType="text/html;charset=ISO-8859-1" language="java" %>
<%@taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd" >
<html>
<head><title>Test</title></head>
<body>
<stripes:form beanclass="com.example.action.ClassActionBean">
<table>
    <tr>
        <td>Name:</td>
        <td><stripes:text name="name"/></td>
    </tr>
    <tr>
        <td>Code:</td>
        <td><stripes:text name="code"/></td>
    </tr>
    <tr>
        <td>
            <stripes:submit name="showData" value="Add"/> 
        </td>
    </tr>

    <c:forEach var="current" items="${actionBean.list }">
    <tr>
        <td><c:out value="${current}"/></td>
    </tr>
    </c:forEach>
 </table>
 </stripes:form>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

如何使用@Wizard注释,这是一个很好的例子 https://stripesframework.atlassian.net/wiki/display/STRIPES/Wizard+Forms