in struts 2, try to do following:
a. use <s:select to display the selectable list (get value from db)
b. pickup the selection,
c. query the db
d. use <s:select to display the selectable list still, and display
the query result
2 Bean file
public class Bed {
private String bed_id;
public String getBed_id() {return bed_id;}
public void setBed_id(String bed_id) { this.bed_id=bed_id; }
}
public class BedAnalysis {
private String bed_id;
private String status;
public String getBed_id() {return bed_id;}
public String getStatus() {return status;}
public void setBed_id(String bed_id) { this.bed_id=bed_id; }
public void setStatus(String status) { this.status=status; }
}
Action
public class Analysis_input implements Action {
private ArrayList<Bed> beds;
private ArrayList<BedAnalysis> bedanalysis;
private String bed_id;
public String execute() throws Exception {
.... /* db initial, get session etc */
beds=service.Beds(); /* service is call db */
String first_time=null;
first_time=ActionContext.getContext().getSession().get("FIRST_TIME");
if (first_time==null)
session.put("FIRST_TIME","1");
else {
bedanalysis=service.Analysis2(getBed_id());
}
return SUCCESS;
}
public void setBeds(ArrayList<Bed> beds){ this.beds = beds; }
public void setBed_id(String bed_id){ this.bed_id = bed_id; }
public void setBedanalysis(ArrayList<BedAnalysis> bedanalysis){
this.bedanalysis = bedanalysis; }
public ArrayList<Bed> getBeds() { return beds; }
public String getBed_id(){ return bed_id; }
public ArrayList<BedAnalysis> getBedanalysis() { return bedanalysis; }
struts.xml
<action name="Analysis_input" class="matco.Analysis_input">
<result name="error">/Analysis_input.jsp</result>
<result name="input">/Analysis_input.jsp</result>
<result name="success">/Analysis_input.jsp</result>
</action>
jsp file
<s:form id="analysis" action="Analysis_input">
<s:select label="beds" name="beds" headerKey="1" headerValue="Please
Select Bed#" list="beds" listKey="bed_id" listValue="bed_id"
value="%{#beds{bed_id}}"/>
<s:submit value="Query"/>
</s:form>
<s:iterator value="bedanlysis" status="st" >
<s:property value="bed_id"/>&nsp <s:property
value="status"/> </s:iterator>
when i call Analysis_input.action, it works, the select box pop the value from
db
but after i select value of bed_id and submit, page render back, and show me
the following
Invalid field value for field "beds".
beds:
Please Select Bed#
i did select the value of bed_id, why this happen?
the weird thing even are: the select list box' all value are gone.
pls help me
john