Hello To all...
j'ai réalisé une application web basée sur le framework Struts ....
mais j'ai un probléme concernant la géneration dynamique des formulaire
c-a-d nom du champs inconnu ainsi que son valeur OK...
le probléme :je veux que la formulaire dynamique remplie un objet et non pas un string...voici le code des défferent entité qui constitue l'application..
/************Objet a remplir par le formulaire**************/
public class ParamProp {
private String paramClass;
private String paramName;
private String paramValue;
public String getParamClass() {
return paramClass;
}
public ParamProp() {
super();
// TODO Auto-generated constructor stub
}
public void setParamClass(String paramClass) {
this.paramClass = paramClass;
}
public String getParamName() {
return paramName;
}
public void setParamName(String paramName) {
this.paramName = paramName;
}
public String getParamValue() {
return paramValue;
}
public void setParamValue(String paramValue) {
this.paramValue = paramValue;
}
public ParamProp(String paramClass, String paramName, String paramValue) {
super();
this.paramClass = paramClass;
this.paramName = paramName;
this.paramValue = paramValue;
}
}
/*************Form Bean************************/
public class PrinterForm extends ActionForm {
private Map hp = new HashMap();
private ParamProp pram;
public PrinterForm() {
}
public void setParam(String key, Object value) {
this.hp.put(key, value);
}
public Object getParam(String key) {
return this.hp.get(key);
}
public Map getMap() {
return this.hp;
}
public void setMap(Map newHMap) {
this.hp = newHMap;
}
}
//*******************Vue JSP***************/
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="net.netprogress.reporting.form.ParamProp"%>
<br>
<br>
<bean:define id="report" name="report"
type="net.netprogress.reporting.po.RReport" scope="session" />
<bean:define id="parameters" name="report" property="parameters" />
<html:form action="/PrintReportAction.do" target="_blank">
<logic:notEmpty name="parameters">
<logic:iterate id="Param" name="parameters"
type="net.netprogress.reporting.po.RParameter" indexId="index">
<html:hidden property='param(<%=index%>).paramClass' ></html:hidden>
<html:hidden property='param(<%=index%>).paramValue' ></html:hidden>
<html:text property='param(<%=index%>).paramname' ></html:text>
</logic:iterate>
</logic:notEmpty>
<center><br>
<bR>
<html:submit value="Print Report" /> <html:reset value="Cancel" /></center>
</html:form>
/*************Action Struts********************/
//Récupérer les Objets Paramétres
PrinterForm printerForm=(PrinterForm)form;
Map map=printerForm.getMap();
System.out.println(map.toString());
*************************************************/
Donc avec ce code le serveur apache Tomcat genére une exception :
///////////Exception******************/
javax.servlet.jsp.JspException: ServletException in '/jsp/report_printer.jsp': Invalid argument looking up property: "param(<%=index%>).paramClass" of bean: "org.apache.struts.taglib.html.BEAN"
/**********************END******************************/
SVP si vous trouvé une faute ou une autre suggestion pour régler ce probléme n'hésiter pas a me repondre...;;et Merci pour tous
Partager