The jelly file bound to AEPCloudEnvMasters should contain not a field for
AEPCloudEnvMasters itself, but fields for the constructor parameters of
AEPCloudEnvMasters.
With your jelly file, the constructor of AEPCloudEnvMansters to accept the
form must be like:
@DataBoundConstructor
public AEPCloudEnvMasters(SomeClass aepCloudEnvMasters);
I could not get exactly what you want to do, but it seems very complicated.
You may find an existing plugin that provides a form like the one you want,
and see how it is implemented.
On Tuesday, August 20, 2013 8:22:38 PM UTC+9, swastb wrote:
>
> Hi All,
>
> We are developing a jenkins build notifier plugin which is supposed to
> fetch some data from database. Here the field names are values are dynamic.
> for example as shown in the screen shot the tomcat download location (field
> name) is dynamic. The problem we are facing is we are not able to save the
> data while saving the job details. The class that is having the following
> details
>
> @DataBoundConstructor
> public AEPCloudEnvMasters(String cloudEnvMasterName, Object paramList,
> String projectUserID, String projectID, String warName) {
> this.cloudEnvMasterName = cloudEnvMasterName;
> this.paramList = paramList;
> this.projectUserID = projectUserID;
> this.projectID = projectID;
> this.warName = warName;
> }
>
> and the corresponding jelly file we have written as
> <f:dropdownList name="aepCloudEnvMasters"
> title="${%AppEnvProfileMasterDetails}">
> <j:forEach var="appProfileMasterName"
> items="${descriptor.getAppProfileList(accountId)}" varStatus="loop">
> <f:dropdownListBlock value="${appProfileMasterName}"
> title="${appProfileMasterName}"
> selected="${appProfileMasterName==instance.appProfileMasterName}">
> <f:nested>
> <input type="hidden" name="aepCloudEnvMasters.cloudEnvMasterName"
> value="${appProfileMasterName}" />
> <f:entry title="${%AppEnvProfileMasterArtifact}"
> field="aepCloudEnvMasters.paramList">
> <j:forEach var="paramList"
> items="${descriptor.getAppProfileParamList(appProfileMasterName)}"
> varStatus="loop">
> <f:entry title="${paramList.paramName}"
> field="${paramList.paramName}">
> <f:textbox value="${paramList.paramValue}"
> field="${paramList.paramName}"/>
> </f:entry>
> </j:forEach>
> </f:entry>
> <f:entry title="${%AppEnvProfileMasterArtifact}"
> field="aepCloudEnvMasters.warName">
> <f:textbox name="${aepCloudEnvMasters.warName}"
> value="${aepCloudEnvMasters.warName}"/>
> <input type="hidden" name="aepCloudEnvMasters.projectUserID"
> value="${descriptor.getProjectUserID()}" />
> <input type="hidden" name="aepCloudEnvMasters.projectID"
> value="${descriptor.getProjectID()}" />
> </f:entry>
> </f:nested>
> </f:dropdownListBlock>
> </j:forEach>
> </f:dropdownList>
>
> While saving we could get all the value mapped to object other than
> paramList.I could see the json getting created as following
> "aepCloudEnvMasters":{
>
> "cloudEnvMasterName":"COMPOSITE-TOMCAT_WEBSERVER-MYSQL_DB(1)",
> "tomcat download location":"
> http://apache.techartifact.com/mirror/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.tar.gz
> ",
> "mysql schema":"provide default schema name",
> "war location":"provided war location",
> "mysql database server location":"provide database
> server location",
> "schema-installer schema name":"db.sql",
> "schema-installer schema location":"executable/",
> "war-installer war location":"executable/",
>
> "warName":"todo-0.1.0.BUILD-SNAPSHOT.war",
> "projectUserID":"123",
> "projectID":"P-123"
> }
> Can someone please help me to configure the object binding properly?
>
--
You received this message because you are subscribed to the Google Groups
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.