Struts2: Type converter für select liste

giordanos

Grünschnabel
Hi Allerseits,

ich bin neu im Gebiet J2EE, und habe mich für eine Lösung mit Tomcat, Struts2 und hibernate entschieden.
Momentan hänge ich an folgendem Problem:

Es gibt Schulungstypen die Module beinhalten, Module können in mehreren Schulungstypen vorkommen (n*m)

In der Schulungstypverwaltung habe ich ein Formular mit einem Select:
<s:select label="Module" name="selectedModule" list="#modulAction.module" listKey="id" listValue="name" size="5" multiple="true"></s:select>

Der index ist also die id der Module.
Nun muss ich beim abschicken diese Modul-ids irgendwie konvertieren, bzw den datensatz aus der db holen und das "echte" Modul-objekt erzeugen.

Desweiteren bin ich mir nicht sicher, ob ich den select irgendwie umbenennen muss, bzw ob ich die selektierten module in einer eigenen variable in der Action klasse speichern muss (so mache ich es bisher), oder aber ob ich es gleich direkt im aktuellen Schulungs-type objekt speichern kann.

Meine aktuelle aktion klasse sieht in etwa so aus, und funktioniert auch, bis auf die Module eben:

Code:
public class SchulungTypeAction extends ActionSupport implements Preparable  {

    private SchulungType currentSchulungType;
    private Integer schulungTypeId;
    private List<SchulungType> schulungTypen;
    private List selectedModule;
   
	

	public String execute()
	{
		return SUCCESS;
	}

	
	public SchulungType getCurrentSchulungType() {
		return currentSchulungType;
	}

	public void setCurrentSchulungType(SchulungType currentSchulungType) {
		this.currentSchulungType = currentSchulungType;
	}

	public Integer getSchulungTypeId() {
		return schulungTypeId;
	}

	public void setSchulungTypeId(Integer schulungTypeId) {
		this.schulungTypeId = schulungTypeId;
	}
	
	
	public List getSchulungTypen() {
		return this.schulungTypen;
	}
	
	
	public List getSelectedModule() {
		return selectedModule;
	}


	public void setSelectedModule(List selectedModule) {
		this.selectedModule = selectedModule;
	}


	public String input()
	{
		return INPUT;
	}
	
	
	public void prepare() throws Exception {
		
		if(getSchulungTypeId() != null)
		{
			SchulungTypeDau m = new SchulungTypeDau();
			SchulungType preFetched = m.loadSchulungType(getSchulungTypeId());
			
			setCurrentSchulungType(preFetched);
			setSelectedModule(preFetched.getModule());

		}
	}
	
	public String delete()
	{
		SchulungTypeDau m = new SchulungTypeDau();
		m.deleteSchulungType(currentSchulungType);
		return SUCCESS;
	}
	
	
	public String save()
	{
		SchulungTypeDau m = new SchulungTypeDau();
		m.saveSchulungType(currentSchulungType);
		return SUCCESS;
	}


}

Die execute Methode benutze ich wohl auch noch nicht ganz richtig :)


Fragen über Fragen, ich wäre auch sehr dankbar für ein Link zu einem Tutorial zu genau diesem Thema, die Struts2 Doku reicht mir in diesem fall leider nicht.


Danke und Viele Grüße
dave
 

Neue Beiträge

Zurück