Wie pflegen Sie die Sitzung mit Struts2 und hibernate?
Ich brauche, um know-how, um Sitzung für ein Formular und mehrere input[Name,City,Country]
mit Struts2 und schließlich Daten werden gespeichert, um die Datenbank mittels hibernate.
Dieses Formular zwei buttons haben:
add
(gespeichert, session);Submit
(gespeichert auf der Datenbank).
Geben Sie zunächst die form details [name city and country]
und klicken Sie auf hinzufügen Schaltfläche Daten speichern zu session
.
Zweiten, geben Sie die Daten für gleiche und jetzt klicken Sie auf add
.
Dritten, geben Sie dieselbe form details, aber klicken Sie nun auf Absenden klicken, werden alle details (erste, zweite & Dritte) werden gespeichert, um die Datenbank mittels hibernate.
pls helfen Sie mir zu lösen, dis...
Bekam eine Fehlermeldung: unser code ist:
Person.java :
@Entity
public class Person {
@Id
@GeneratedValue
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
PersonAction.java:
public class PersonAction extends ActionSupport implements SessionAware {
private Person person = new Person();
//Database base=new Database();
public Person getPerson() {
return person;
}
public void setPerson(Person person){
this.person = person;
}
private Map<String, Object> session;
public void setSession(Map<String, Object> session){
this.session = session;
}
public String execute() { //Create persons
List<Person> personList = (List<Person>) session.get("personList");
for (Person p : personList)
Database.saveData(this);
personList.clear();
return SUCCESS;
}
public String add() { //Add person
List<Person> personList = (List<Person>) session.get("personList");
if (personList == null) {
personList = new ArrayList<Person>();
session.put("personList", personList);
System.out.println("Successfully added");
}
personList.add(person);
return SUCCESS;
}
}
Database.java:
public class Database {
public static int saveData(PersonAction personAction){
SessionFactory sf=new AnnotationConfiguration().configure().buildSessionFactory();
Session session=sf.openSession();
Transaction tran=session.beginTransaction();
int i=(Integer)session.save(personAction);
tran.commit();
session.close();
return i;
}
}
struts.xml:
<struts>
<package name="default" extends="struts-default">
<action name="person" class="org.PersonAction">
<result>/person.jsp</result>
</action>
<action name="person" class="org.PersonAction" method="add">
<result>/person.jsp</result>
</action>
</package>
</struts>
index.jsp:
<s:form action="person">
<s:textfield label="Enter your name" name="name"/>
<s:submit value="Add person" method="add"/>
<s:submit value="Create persons"/>
</s:form>
person.jsp:
<body>
<s:property value="#session.name"/>
</body>
dieser s meine Aufgabe, eine form, aber unterschiedliche Daten ...wenn wir geben Sie die Daten 3 mal und schließlich alle Daten speichern Datenbank ... pls help me zu lösen dis 🙂
alle auf einmal?
ja ...im mit sessionAware und HttpSession, aber ich weiß nicht, wie zu tun, dis :(--ty PSR
sind u Speicherung aller Namen, die gleiche Zeit, oder...?
InformationsquelleAutor MoorthyKS | 2013-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie map-die-Tasten, um die Methode in Aktion. Die Standard - Aktion mapper es erlaubt, die Namen von Schaltflächen oder
method
- Attribut legen Sie die Methode, andere als die verwendet, die das Formular-mapping. Zum BeispielNun, in der Aktion, die Sie umsetzen
SessionAware
Nun, Sie haben sich getrennt Logik über Methoden zugeordnet, da Sie den entsprechenden button. Zu machen, arbeiten, sicher sein, Sie haben DMI (Dynamic Method Invocation) eingeschaltet werden (ist standardmäßig an) und Abfangjäger stack
defaultStack
angewendet wird, um die action-config (standardmäßig verwendet).struts.xml:
SessionAware
ist eine Schnittstelle, die Ihre Aktion oder base-Aktion durchführen sollten, wenn Sie verwenden möchten servlet-Sitzung, um in Ihren Objekten. Mehr darüber hier.ActionContext
ist ein Behälter, der Platzhalter für die Aktion ein Aufruf, mehr detaillierte Erläuterung hier.Hallo Roman: ich verstehe die Logik aber etwas verwirrt, struts.xml u kann mir zeigen, das struts.xml Datei dis-code- - --thank u Roman
Siehe updates.
Roman : Bekam eine Fehlermeldung siehe da update und ich danke u für die Wiedergabe von mir 🙂
Für Fehler, die Sie benötigen, um post zusammen mit dem code, den stacktrace und beinhalten die Ursache des Fehlers.
InformationsquelleAutor Roman C