为什么Alloyui形式出现在portlet之外?

时间:2013-11-28 16:04:55

标签: liferay portlet alloy-ui

我正在使用Liferay portlet。我使用AlloyUI表格。这是portlet的代码(它叫做provision-portlet;我是法语,因此评论是法语的,但我尝试用英语编写代码):

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>

<%@ page import="org.jdom2.*, org.jdom2.input.*, org.jdom2.output.*" %>
<%@ page import="java.io.File, java.io.FileReader, java.io.Reader" %>
<%@ page import="java.util.List" %>
<%@ page import="java.lang.Exception, java.io.FileNotFoundException" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="org.apache.commons.lang3.*" %>

<%
System.out.println("view.jsp");
%>

<portlet:defineObjects/>
<!-- déclenche l'appel à ProvisionPortlet::processOrgTemplate en sortie de la page -->
<portlet:actionURL name="processOrgTemplate" var="processOrgTemplateURL">
    <!-- passage des paramètres d'entrée au paramètre de sortie -->
    <%
    String workflowID = (String) renderRequest.getAttribute("workflowID");
    %>
    <portlet:param name="workflowID" value="<%= workflowID %>" />
</portlet:actionURL>
<!-- formulaire -->
<aui:form action="<%= processOrgTemplateURL.toString() %>" method="post">
    <!-- alignement des champs -->
    <aui:fieldset column="true">

        <%
        // parsing du document XML passé en paramètre d'entrée
        String parseMe = (String) renderRequest.getAttribute("vCloud:OrgTemplate");
        java.io.StringReader strReader = new java.io.StringReader(parseMe);
        java.io.Reader reader = (java.io.Reader) strReader;
        // on cree une instance de SAXBuilder
        SAXBuilder sxb = new SAXBuilder();
        org.jdom2.Document document = new org.jdom2.Document();
        try {
            // on cree un nouveau document JDOM avec en argument le fichier
            // le parsing est termine
            document = sxb.build(reader);
        } catch (java.io.IOException e) {
            e.printStackTrace();
            return;
        } catch (JDOMException e) {
            e.printStackTrace();
            return;
        }
        // on initialise un nouvel élément root avec l'élément root du document
        Element root = document.getRootElement();
        // lecture du namespace
        Namespace ns = root.getNamespace();
        // lecture des enfants de l'élément racine
        Element steps = root.getChild("steps", ns);
        List<Element> listStep = steps.getChildren("step", ns);
        for (Element step : listStep) {
            Element group = step.getChild("group", ns);
            Element fields = group.getChild("fields", ns);
            Element field = fields.getChild("field", ns);
            String id = field.getAttributeValue("id");
            System.out.println("id = " + id); // DEBUG
            if (id.compareTo("org") == 0) {
                // présentation des organization en menu déroulant 
                Element decorators = field.getChild("decorators", ns);
                Element dropDown = decorators.getChild("drop-down", ns);
                Element array = dropDown.getChild("array", ns);
                List<Element> listSdkObject = array.getChildren("sdk-object", ns);
        %>
                <!-- menu déroulant : org -->
                <aui:select label="<%= id %>" name="<%= id %>">
        <%
                for (Element sdkObject : listSdkObject) {
                    String displayValue = sdkObject.getAttributeValue("display-value");
                    XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat());
                    String strNotEscaped = xmlOutputter.outputString(sdkObject);
                    String strEscaped = StringEscapeUtils.escapeXml(strNotEscaped);
        %>
                    <aui:option value="<%= strEscaped %>">
                        <liferay-ui:message key="<%= displayValue %>" />
                    </aui:option>
        <%
                }
        %>
                </aui:select>
        <%
            } else if (id.compareTo("template") == 0) {
                // présentation des template en menu déroulant
                Element decorators = field.getChild("decorators", ns);
                Element dropDown = decorators.getChild("drop-down", ns);
                Element array = dropDown.getChild("array", ns);
                List<Element> listSdkObject = array.getChildren("sdk-object", ns);
        %>
                <!-- menu déroulant : vapp -->
                <aui:select label="<%= id %>" name="<%= id %>">
        <%
                for (Element sdkObject : listSdkObject) {
                    String displayValue = sdkObject.getAttributeValue("display-value");
                    XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat());
                    String strNotEscaped = xmlOutputter.outputString(sdkObject);
                    String strEscaped = StringEscapeUtils.escapeXml(strNotEscaped);
        %>
                    <aui:option value="<%= strEscaped %>">
                        <liferay-ui:message key="<%= displayValue %>" />
                    </aui:option>
        <%
                }
        %>
                </aui:select>
        <%
            }
        }
        %>

        <!-- bouton de soumission du formulaire -->
        <aui:button-row>
            <aui:button type="submit" value="Send"/>
        </aui:button-row>

    </aui:fieldset>
</aui:form>

出于某种原因,它看起来像这样:

http://postimg.org/image/x3h4vy2cz/

任何人都可以告诉我为什么表单不在portlet中以及如何更改它?

由于

玛丽

1 个答案:

答案 0 :(得分:1)

由于您使用过aui:fieldset而发生这种情况。

正在补充 .ltr .aui-column, .rtl .aui-column-last { float: left; } css to field-set导致aligment问题。

如果不需要,请删除该字段集,否则否定提及的CSS效果。