Author: tchemit Date: 2011-11-14 16:09:26 +0100 (Mon, 14 Nov 2011) New Revision: 80 Url: http://forge.codelutin.com/repositories/revision/echobase/80 Log: - make export sql validation works - add svn properties - add missing entity stereotype on model - add configuration constants Added: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-saveExportQuery-validation.xml Removed: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-doSaveQuery-validation.xml Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties trunk/echobase-entities/src/main/xmi/echobase.zargo trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlResult.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageExportQuery.java trunk/echobase-ui/src/main/resources/config/struts-export.xml trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/ImportAction-importForm-validation.xml trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/user/ManageUser-validation.xml trunk/echobase-ui/src/main/resources/log4j.properties trunk/echobase-ui/src/main/resources/template/css_xhtml/checkbox.ftl trunk/echobase-ui/src/main/resources/template/css_xhtml/controlheader-core.ftl trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSql.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSqlResult.jsp Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java 2011-11-14 15:09:26 UTC (rev 80) @@ -51,6 +51,10 @@ protected static final Log log = LogFactory.getLog(EchoBaseConfiguration.class); + public static final String OPTION_CREATE_ADMINS = "createAdmins"; + + public static final String OPTION_UPDATE_SCHEMA = "updateSchema"; + /** Delegate application config object containing configuration. */ protected ApplicationConfig applicationConfig; Modified: trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties =================================================================== --- trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2011-11-14 15:09:26 UTC (rev 80) @@ -162,6 +162,7 @@ echobase.common.transducerSerial= echobase.common.transect=transect echobase.common.transectAbstract= +echobase.common.transectAcousticInstrument= echobase.common.transit=transit echobase.common.transitDescription= echobase.common.transitEndLocatlity= @@ -179,6 +180,7 @@ echobase.common.vesselName= echobase.common.vesselNoiseDesign= echobase.common.vesselTonnage= +echobase.common.vesselTransit= echobase.common.vesselType= echobase.common.voyage=Campagne echobase.common.voyageDescription= Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo =================================================================== (Binary files differ) Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2011-11-14 15:09:26 UTC (rev 80) @@ -24,6 +24,7 @@ package fr.ifremer.echobase.services; import com.google.common.base.Preconditions; +import fr.ifremer.echobase.EchoBaseConfiguration; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.entities.EchoBaseDAOHelper; import fr.ifremer.echobase.entities.EchoBaseUser; @@ -144,7 +145,7 @@ userDTO.setAdmin(true); createOrUpdate(userDTO); - if (getConfiguration().getOptionAsBoolean("createAdmins")) { + if (getConfiguration().getOptionAsBoolean(EchoBaseConfiguration.OPTION_CREATE_ADMINS)) { for (int i = 0; i < 1000; i++) { userDTO = new EchoBaseUserDTOImpl(); userDTO.setEmail(DEFAULT_ADMIN_EMAIL + i); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2011-11-14 15:09:26 UTC (rev 80) @@ -122,7 +122,7 @@ try { boolean schemaExist = isSchemaCreated(); if (!schemaExist || - configuration.getOptionAsBoolean("updateSchema")) { + configuration.getOptionAsBoolean(EchoBaseConfiguration.OPTION_UPDATE_SCHEMA)) { updateSchema(configuration); } Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSql.java 2011-11-14 15:09:26 UTC (rev 80) @@ -1,92 +0,0 @@ -/* - * #%L - * EchoBase :: UI - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.echobase.ui.actions.export; - -import fr.ifremer.echobase.entities.ExportQuery; -import fr.ifremer.echobase.entities.ExportQueryImpl; -import fr.ifremer.echobase.services.ExportSqlService; -import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; -import org.apache.commons.lang3.StringUtils; - -import java.util.Collection; -import java.util.Map; - -/** - * Load export sql main page. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.1 - */ -public class ExportSql extends EchoBaseActionSupport { - - private static final long serialVersionUID = 1L; - - /** All available queries from database. */ - protected Map<String, String> queries; - - /** Selected query loaded from database if his id is not empty. */ - protected ExportQuery query; - - public ExportQuery getQuery() { - if (query == null) { - query = new ExportQueryImpl(); - } - return query; - } - - public Map<String, String> getQueries() { - return queries; - } - - public Map<String, String> getTableNames() { - return queries; - } - - @Override - public String execute() throws Exception { - ExportSqlService service = newService(ExportSqlService.class); - - Collection<ExportQuery> sqlQueries = service.getQueries(); - queries = sortAndDecorate(sqlQueries, null); - - if (sqlQueries.isEmpty()) { - // no query saved - addActionMessage(_("echobase.info.no.sqlQuery.saved")); - } - - String selectedQueryId = getQuery().getTopiaId(); - - if (StringUtils.isEmpty(selectedQueryId)) { - - // no query selected - addActionMessage(_("echobase.info.no.sqlQuery.selected")); - } else { - - // load query from database - query = service.getQueryById(selectedQueryId); - } - return SUCCESS; - } - -} Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlResult.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlResult.java 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ExportSqlResult.java 2011-11-14 15:09:26 UTC (rev 80) @@ -23,6 +23,7 @@ */ package fr.ifremer.echobase.ui.actions.export; +import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.services.ExportSqlService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; @@ -66,8 +67,14 @@ // obtain columNames from the request ExportSqlService service = newService(ExportSqlService.class); - columnNames = service.getColumnNames(sql); + try { + columnNames = service.getColumnNames(sql); + } catch (EchoBaseTechnicalException e) { + //TODO add a real nice message + addActionError(e.getMessage()); + } + // create default file name fileName = "export.csv"; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageExportQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageExportQuery.java 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/export/ManageExportQuery.java 2011-11-14 15:09:26 UTC (rev 80) @@ -23,22 +23,30 @@ */ package fr.ifremer.echobase.ui.actions.export; +import com.opensymphony.xwork2.Preparable; import fr.ifremer.echobase.entities.ExportQuery; import fr.ifremer.echobase.entities.ExportQueryImpl; import fr.ifremer.echobase.services.ExportSqlService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import org.apache.commons.lang3.StringUtils; +import java.util.Collection; +import java.util.Map; + /** * To manage {@link ExportQuery}. * * @author tchemit <chemit@codelutin.com> * @since 0.1 */ -public class ManageExportQuery extends EchoBaseActionSupport { +public class ManageExportQuery extends EchoBaseActionSupport implements Preparable { private static final long serialVersionUID = 1L; - /** Selected query */ + /** All available queries from database. */ + protected Map<String, String> queries; + + /** Selected query loaded from database if his id is not empty. */ protected ExportQuery query; public ExportQuery getQuery() { @@ -48,6 +56,14 @@ return query; } + public Map<String, String> getQueries() { + return queries; + } + + public Map<String, String> getTableNames() { + return queries; + } + public String saveQuery() throws Exception { //TODO : do validation @@ -79,4 +95,29 @@ query = null; return SUCCESS; } + + @Override + public void prepare() throws Exception { + ExportSqlService service = newService(ExportSqlService.class); + + Collection<ExportQuery> sqlQueries = service.getQueries(); + queries = sortAndDecorate(sqlQueries, null); + + if (sqlQueries.isEmpty()) { + // no query saved + addActionMessage(_("echobase.info.no.sqlQuery.saved")); + } + + String selectedQueryId = getQuery().getTopiaId(); + + if (StringUtils.isEmpty(selectedQueryId)) { + + // no query selected + addActionMessage(_("echobase.info.no.sqlQuery.selected")); + } else { + + // load query from database + query = service.getQueryById(selectedQueryId); + } + } } \ No newline at end of file Modified: trunk/echobase-ui/src/main/resources/config/struts-export.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-export.xml 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-ui/src/main/resources/config/struts-export.xml 2011-11-14 15:09:26 UTC (rev 80) @@ -38,12 +38,14 @@ <param name="namespace">export</param> <param name="query.topiaId">${query.topiaId}</param> </result-type> + </result-types> <!-- Display export sql main page --> - <action name="exportSql" - class="fr.ifremer.echobase.ui.actions.export.ExportSql"> - <result>/WEB-INF/jsp/export/exportSql.jsp</result> + <action name="exportSql" method="input" + class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery"> + <interceptor-ref name="paramsPrepareParamsStackLoggued"/> + <result name="input">/WEB-INF/jsp/export/exportSql.jsp</result> </action> <!-- Display the result of the sql query execution --> @@ -67,24 +69,31 @@ <!-- Clone the sql query --> <action name="cloneExportQuery" method="cloneQuery" class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery"> + <interceptor-ref name="paramsPrepareParamsStackLoggued"/> + <result name="input">/WEB-INF/jsp/export/exportSql.jsp</result> <result type="redirectExportSql"/> </action> <!-- Save the sql query --> <action name="saveExportQuery" method="saveQuery" class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery"> + <interceptor-ref name="paramsPrepareParamsStackLoggued"/> + <result name="input">/WEB-INF/jsp/export/exportSql.jsp</result> <result type="redirectExportSql"/> </action> <!-- Delete the sql query --> <action name="deleteExportQuery" method="deleteQuery" class="fr.ifremer.echobase.ui.actions.export.ManageExportQuery"> + <interceptor-ref name="paramsPrepareParamsStackLoggued"/> + <result name="input">/WEB-INF/jsp/export/exportSql.jsp</result> <result type="redirectExportSql"/> </action> <!-- Download the sql query csv file --> <action name="downloadExportSqlResult" class="fr.ifremer.echobase.ui.actions.export.DownloadExportSqlResult"> + <interceptor-ref name="paramsPrepareParamsStackLoggued"/> <result type="stream"> <param name="contentType">${contentType}</param> <param name="contentLength">${contentLength}</param> @@ -95,6 +104,7 @@ <!-- Download the embedded application zip file --> <action name="downloadEmbeddedApplication" class="fr.ifremer.echobase.ui.actions.export.DownloadEmbeddedApplication"> + <interceptor-ref name="paramsPrepareParamsStackLoggued"/> <result type="stream"> <param name="contentType">${contentType}</param> <param name="contentLength">${contentLength}</param> Property changes on: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/ImportAction-importForm-validation.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Deleted: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-doSaveQuery-validation.xml =================================================================== --- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-doSaveQuery-validation.xml 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-doSaveQuery-validation.xml 2011-11-14 15:09:26 UTC (rev 80) @@ -1,56 +0,0 @@ -<!-- - #%L - EchoBase :: UI - - $Id$ - $HeadURL$ - %% - Copyright (C) 2011 Ifremer, Codelutin - %% - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - #L% - --> -<!DOCTYPE validators PUBLIC - "-//OpenSymphony Group//XWork Validator 1.0.2//EN" - "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> -<validators> - - <field name="query.name"> - - <field-validator type="requiredstring"> - <message key="echobase.validation.export.name.requiredstring"/> - </field-validator> - </field> - - <field name="query.description"> - - <field-validator type="requiredstring"> - <message key="echobase.validation.export.description.requiredstring"/> - </field-validator> - </field> - - <field name="query.sqlQuery"> - - <field-validator type="requiredstring"> - <message key="echobase.validation.export.sqlQuery.requiredstring"/> - </field-validator> - <field-validator type="regex"> - <!-- TODO sletellier 2011/11/14 : Find a better regex exression to define sql query --> - <param name="expression">^\s*select\s+.+\s+from\s+.+$</param> - <param name="caseSensitive">false</param> - <message key="echobase.validation.export.sqlQuery.wrongformat"/> - </field-validator> - </field> - -</validators> \ No newline at end of file Copied: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-saveExportQuery-validation.xml (from rev 78, trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-doSaveQuery-validation.xml) =================================================================== --- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-saveExportQuery-validation.xml (rev 0) +++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-saveExportQuery-validation.xml 2011-11-14 15:09:26 UTC (rev 80) @@ -0,0 +1,56 @@ +<!-- + #%L + EchoBase :: UI + + $Id$ + $HeadURL$ + %% + Copyright (C) 2011 Ifremer, Codelutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --> +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> +<validators> + + <field name="query.name"> + + <field-validator type="requiredstring"> + <message key="echobase.validation.export.name.requiredstring"/> + </field-validator> + </field> + + <field name="query.description"> + + <field-validator type="requiredstring"> + <message key="echobase.validation.export.description.requiredstring"/> + </field-validator> + </field> + + <field name="query.sqlQuery"> + + <field-validator type="requiredstring"> + <message key="echobase.validation.export.sqlQuery.requiredstring"/> + </field-validator> + <field-validator type="regex"> + <!-- TODO sletellier 2011/11/14 : Find a better regex exression to define sql query --> + <param name="expression">^\s*select\s+.+\s+from\s+.+$</param> + <param name="caseSensitive">false</param> + <message key="echobase.validation.export.sqlQuery.wrongformat"/> + </field-validator> + </field> + +</validators> \ No newline at end of file Property changes on: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/export/ManageExportQuery-saveExportQuery-validation.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/user/ManageUser-validation.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/resources/log4j.properties =================================================================== --- trunk/echobase-ui/src/main/resources/log4j.properties 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-ui/src/main/resources/log4j.properties 2011-11-14 15:09:26 UTC (rev 80) @@ -22,7 +22,7 @@ # #L% ### # Default to info level output; this is very handy if you eventually use Hibernate as well. -log4j.rootCategory=info, A1 +log4j.rootCategory=WARN, A1 # A1 is set to be a ConsoleAppender. log4j.appender.A1=org.apache.log4j.ConsoleAppender @@ -33,6 +33,3 @@ # Toute l'application log4j.logger.fr.ifremer.echobase=INFO - -log4j.logger.com.opensymphony.xwork2.validator.ValidationInterceptor=DEBUG -log4j.logger.org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor=DEBUG \ No newline at end of file Property changes on: trunk/echobase-ui/src/main/resources/log4j.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: trunk/echobase-ui/src/main/resources/template/css_xhtml/checkbox.ftl ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: trunk/echobase-ui/src/main/resources/template/css_xhtml/controlheader-core.ftl ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSql.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSql.jsp 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSql.jsp 2011-11-14 15:09:26 UTC (rev 80) @@ -27,6 +27,7 @@ <s:url id="reloadUrl" action='exportSql' namespace='/export'/> <s:url id="exportSqlResultUrl" action="exportSqlResult" namespace="/export"/> +<s:set var="noError" value="!hasErrors()"/> <script type="text/javascript"> function reloadQuery() { @@ -57,7 +58,7 @@ }); var queryId = $('[name="query.topiaId"]').val(); - if (queryId) { + if (queryId && ${noError}) { // auto launch query loadGridData(); } Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSqlResult.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSqlResult.jsp 2011-11-14 13:55:41 UTC (rev 79) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/exportSqlResult.jsp 2011-11-14 15:09:26 UTC (rev 80) @@ -26,39 +26,47 @@ <%@ taglib prefix="sj" uri="/struts-jquery-tags" %> <%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %> -<s:url id="loadUrl" action="getExportSqlResult" namespace="/export" - escapeAmp="false"> - <s:param name="sql" value="%{sql}"/> -</s:url> +<s:if test="hasActionErrors()"> + <div class="info_error"> + <s:actionerror/> + </div> +</s:if> +<s:else> + <s:url id="loadUrl" action="getExportSqlResult" namespace="/export" + escapeAmp="false"> + <s:param name="sql" value="%{sql}"/> + </s:url> -<s:form action="downloadExportSqlResult" namespace="/export"> + <s:form action="downloadExportSqlResult" namespace="/export"> - <fieldset> - <legend><s:text name="echobase.sqlQuery.result"/></legend> + <fieldset> + <legend><s:text name="echobase.sqlQuery.result"/></legend> - <s:hidden key="sql" label=""/> - <s:textfield key="fileName" required="true" size="100" - label="%{getText('echobase.common.exportFileName')}"/> - <s:submit key="echobase.action.exportSqlData" align="left"/> - <br/> -<sjg:grid id="rows" caption="%{getText('echobase.common.request.result')}" - dataType="json" href="%{loadUrl}" gridModel="datas" - pager="true" pagerButtons="true" pagerInput="true" - navigator="true" autowidth="true" rownumbers="false" - navigatorEdit="false" navigatorDelete="false" - navigatorSearch="false" navigatorRefresh="false" - navigatorAdd="false" rowList="10,15,20,50" rowNum="10" - viewrecords="true"> + <s:hidden key="sql" label=""/> + <s:textfield key="fileName" required="true" size="100" + label="%{getText('echobase.common.exportFileName')}"/> + <s:submit key="echobase.action.exportSqlData" align="left"/> + <br/> + <sjg:grid id="rows" caption="%{getText('echobase.common.request.result')}" + dataType="json" href="%{loadUrl}" gridModel="datas" + pager="true" pagerButtons="true" pagerInput="true" + navigator="true" autowidth="true" rownumbers="false" + navigatorEdit="false" navigatorDelete="false" + navigatorSearch="false" navigatorRefresh="false" + navigatorAdd="false" rowList="10,15,20,50" rowNum="10" + viewrecords="true"> - <s:iterator value="columnNames" var="name" status="status"> + <s:iterator value="columnNames" var="name" status="status"> - <sjg:gridColumn name="%{#name}" title="%{#name}" sortable="false"/> + <sjg:gridColumn name="%{#name}" title="%{#name}" sortable="false"/> - </s:iterator> + </s:iterator> -</sjg:grid> - </fieldset> -</s:form> + </sjg:grid> + </fieldset> + </s:form> +</s:else> +