Ik ben sinds enkele weken door school opgezadeld met Struts. Ik heb nu een algemeen struts framework in elkaar zitten dat werkt, dus jsp - actions - dynaforms - model/domein etc, de personen die struts kennen weten wat ik bedoel.
Nu wil ik het volgende realiseren:
Ik heb een frameset met een menu, via dat menu kom ik via een action op een jsp pagina. Op deze jsp pagina zit een formulier met input velden(=dynaForm).
Als ik het formulier submit kan ik ook werkelijk in mijn action de ingevoerde waarden uitlezen, heel mooi dus. Maar nu wil ik zo snel als ik het formulier op vraag dat de waarden uit het model(via action) in de input velden worden gezet.
Met normale text velden kan ik dit wel voor elkaar krijgen door een value="<%= (String) request.getSession(true).getAttribute("bla")%> te doen. Dit werkt opzich ook wel.
Maar nu heb ik ook nog checkboxen, maar deze kan ik helemaal geen waarde geven(checked bestaat niet bij <html:checkbox...)
Ik heb hierna nog eens het dynaform uit gepluists en vond hier ook een Set methode. Ik heb nu dus in mijn 1e action mijn dynaForm gezet maar helaas komen er geen waarden in mijn formulier.
Ik heb nu al een paar uur via google gezocht naar een oplossing maar ik snap niet wat het probleem is. Weet iemand hoe ik dit realiseer ???
Hieronder nog de belangrijke stukjes uit mijn actions, jsp en struts-config
Hieronder aantal dingen mbt. uit de struts-config
Hier mijn eerste action(dus diegen die het formulieer als eerste laad
En hier mijn input regel uit mijn JSP
Nu wil ik het volgende realiseren:
Ik heb een frameset met een menu, via dat menu kom ik via een action op een jsp pagina. Op deze jsp pagina zit een formulier met input velden(=dynaForm).
Als ik het formulier submit kan ik ook werkelijk in mijn action de ingevoerde waarden uitlezen, heel mooi dus. Maar nu wil ik zo snel als ik het formulier op vraag dat de waarden uit het model(via action) in de input velden worden gezet.
Met normale text velden kan ik dit wel voor elkaar krijgen door een value="<%= (String) request.getSession(true).getAttribute("bla")%> te doen. Dit werkt opzich ook wel.
Maar nu heb ik ook nog checkboxen, maar deze kan ik helemaal geen waarde geven(checked bestaat niet bij <html:checkbox...)
Ik heb hierna nog eens het dynaform uit gepluists en vond hier ook een Set methode. Ik heb nu dus in mijn 1e action mijn dynaForm gezet maar helaas komen er geen waarden in mijn formulier.
Ik heb nu al een paar uur via google gezocht naar een oplossing maar ik snap niet wat het probleem is. Weet iemand hoe ik dit realiseer ???
Hieronder nog de belangrijke stukjes uit mijn actions, jsp en struts-config
Hieronder aantal dingen mbt. uit de struts-config
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| <!-- Sensor settings form -->
<form-bean name="sensorsForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="heatSensorState" type="java.lang.Boolean" />
<form-property name="minTemp" type="java.lang.Integer" />
<form-property name="maxTemp" type="java.lang.Integer" />
<form-property name="motionSensorState" type="java.lang.Boolean" />
<form-property name="lightSensorState" type="java.lang.Boolean" />
<form-property name="minLight" type="java.lang.Integer" />
<form-property name="maxLight" type="java.lang.Integer" />
</form-bean>
<!-- Loads the Sensors Page at first time -->
<action path="/showSensors"
name="sensorsForm"
scope="request"
type="nl.hio.domotica.admin.actions.ShowSensors"
input="/view/sensors.jsp">
<forward name="success" redirect="true" path="/view/sensors.jsp" />
<forward name="login" redirect="true" path="/view/login.jsp" />
</action>
<!-- Sensors Page -->
<action path="/sensors"
type="nl.hio.domotica.admin.actions.SensorsAction"
name="sensorsForm"
scope="request"
input="/view/sensors.jsp">
<forward name="success" redirect="true" path="/view/sensors.jsp" />
<forward name="failure" redirect="false" path="/view/sensors.jsp" />
<forward name="login" redirect="true" path="/view/login.jsp" />
</action> |
Hier mijn eerste action(dus diegen die het formulieer als eerste laad
Java:
1
2
3
4
| DynaActionForm dynaForm = (DynaActionForm)form; dynaForm.set("minTemp",new Integer(12)); ..... |
En hier mijn input regel uit mijn JSP
Java:
1
| <html:text maxlength="8" size="8" style="txt" property="minTemp" /> |