【问题标题】:maintaining a session using struts2 and hibernate?使用struts2 和hibernate 维护会话?
【发布时间】:2013-06-13 15:23:50
【问题描述】:

我需要知道如何在 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>

【问题讨论】:

  • 我不太清楚这个问题:你问的是如何将数据放入会话中,还是如何使用 Hibernate?
  • 维护会话:我有一个表单..表单数据将添加到会话中..第二次我将相同的表单数据添加到会话中并添加了很多次,最后所有数据都将存储到数据库中...你有有什么想法吗?
  • 我还是不明白:你知道如何访问S2中的会话吗?它已记录在案。
  • 是的,我知道......使用 sessionAware..我需要知道如何以一种形式和不同的数据来维护会话......你明白我的意思了吗?
  • 不。您有会话中的数据;为什么你还需要继续保持它的形式?在任何情况下,您都可以使用隐藏字段。但是不,我仍然不明白这个问题。

标签: hibernate session struts2


【解决方案1】:

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

将数组放置在会话中,以便在重复提交表单时保留该数组。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多