0

我需要知道如何在 Struts 2 中维护会话我有一个表单和两个按钮,例如添加和更新...如果您添加更多时间相同的表单,数据将存储到会话中,我删除了会话中的一个表单详细信息而不是数据库和最后提交表单,所有表单详细信息都将存储到数据库中......有人知道该怎么做请帮我解决这个问题我的代码是:

    public class LogingEx extends ActionSupport implements SessionAware{    

    private int id;

    private String stuname,country;
    private int stumarks,stuage;
    private static final String HELLO_COUNT = "helloCount";
    private Map userSession;;

    @Id
    @GenericGenerator(name = "mygen1", strategy = "increment")
    @GeneratedValue(generator = "mygen1")
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }

    public String getStuname() {
        return stuname;
    }
    public void setStuname(String stuname) {
        this.stuname = stuname;
    }

    public int getStuage() {
        return stuage;
    }
    public void setStuage(int stuage) {
        this.stuage = stuage;
    }

    public String getCountry() {
        return country;
    }
    public void setCountry(String country) {
        this.country = country;
    }

    public int getStumarks() {
        return stumarks;
    }
    public void setStumarks(int stumarks) {
        this.stumarks = stumarks;
    }


    public String execute() throws IOException
    {   

        userSession.put("a",stuname);
        userSession.put("b", stuage);
        userSession.put("c",stumarks);
        userSession.put("d",country);

        Database.saveData(this);
        return SUCCESS;
    }
     public void setSession(Map session) {
         userSession = session ;
        }  
}

数据库:

public class Database {
    public static int saveData(LogingEx e){
    SessionFactory sf=new AnnotationConfiguration().configure().buildSessionFactory();
    Session session=sf.openSession();
    Transaction tran=session.beginTransaction();

    int i=(Integer)session.save(e);
    tran.commit();
    session.close();
    return i;

}
}

支柱:

 <struts>
        <package name="default" extends="struts-default">
             <action name="verify" class="org.LogingEx">
                <result name="success">/index.jsp</result>           
            </action>
        </package>
    </struts>

JSP:

    <s:form action="verify">

        <s:textfield name="stuname" label="Enter Username" /><br>
        <s:textfield name="stuage" label="Enter Age" /><br>
        <s:textfield name="stumarks" label="Enter Marks" /><br>
        <s:textfield name="country" label="Enter Country" /><br>
        <s:submit value="Click" id="submit" align="center" /> 
    </s:form>

    Name:<s:property value="#session.a" /><br>
    Age:<s:property value="#session.b" /> <br>
    Marks:<s:property value="#session.c" /><br>
    Country:<s:property value="#session.d" />
    </body>
    </html>
4

1 回答 1

1

当您第一次提交表单数据时,将该表单数据放在一个数组中,并在提交新表单时多次重复该步骤。

将数组放在会话中,以便在重复提交表单期间保留此数组。

完成表单提交部分后,您可以将表单数据从数组存储到数据库中。

于 2013-06-13T20:08:44.183 回答