0

Struts 2 でセッションを維持する方法を知る必要があります。フォームが 1 つと、追加や更新のような 2 つのボタンがあります。同じフォームをさらに追加すると、データはセッションに保存され、データベースではなくセッションのフォームの詳細を 1 つ削除し、最後にフォームを送信すると、すべてのフォームの詳細がデータベースに保存されます...誰かがそれを行う方法を知っていますか?これを解決するのを手伝ってください私のコードは次のとおりです:

    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 に答える