Struts 2 Drop-Down-Beispiel Problem
ich versuche zu arbeiten auf eine drop-down-Liste mit struts2-tag. Aber bis jetzt bin ich erfolglos: unten ist die .jsp-Seite, der die action-Klasse, die struts.xml Datei und alle relevanten codes. Jede Hilfe wird sehr geschätzt. Danke.
Hinweis: ich bin immer diese Fehlermeldung :-> - tag 'select', Feld 'Liste': Der angeforderte Liste key 'Land' konnte nicht aufgelöst werden, wie eine collection/array/map/enumeration/iterator-Typ. Beispiel: Menschen oder Menschen.{name} - [unbekannter Ort]
...........
Index.jsp :
.............
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<h3>Struts 2: UI Tag Example - Registration Page Demo </h3><hr>
<s:form action="register">
<s:select label="Country" list="country" listKey="countryAbbr" listValue="countryName" />
<s:submit/>
</s:form>
......................
struts.xml:
......................
<package name="com.uitagdemo" extends="struts-default">
<action name="register" class="com.uitagdemo.RegisterAction" >
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
...........................
RegisterAction.java
...........................
public class RegisterAction erstreckt ActionSupport {
private List<Country> country;
public String execute() {
return SUCCESS;
}
public List<Country> getCountry(){
country = new ArrayList<Country>();
country.add(new Country("IN", "INDIA"));
country.add(new Country("US", "USA"));
country.add(new Country("FR", "FRANCE"));
return country;
}
}
.......................
Erfolg.jsp
.......................
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
Struts 2: UI-Tag Beispiel
Struts 2: UI-Tag Beispiel - Seite " Registrierung Demo
Country: <s:property value="country" /><br>
</body>
......................
Country.java
......................
public class Land {
private String countryAbbr;
private String countryName;
public Country() {
}
public Country(String countryAbbr, String countryName) {
this.countryAbbr = countryAbbr;
this.countryName = countryName;
}
public String getCountryName() {
return countryName;
}
public void setCountryName(String countryName) {
this.countryName = countryName;
}
public String getCountryAbbr() {
return countryAbbr;
}
public void setCountryAbbr(String countryAbbr) {
this.countryAbbr = countryAbbr;
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
In diesem Fall verwenden Sie die Landes-Klasse als eine Karte. Einfachste Lösung wäre eine Hashmap Eigenschaft, die man als Land mit entsprechenden getter/setter und füllen es mit was Sie brauchen.
Dann in Ihre JSP-man könnte sagen so etwas wie:
oder vielleicht würden Sie lieber
Den workflow werden sollte, umgekehrte als oben. Es sollte
aber oben haben wir