Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf h:outputLabel在RichFaces AJAX调用后的长度更改_Jsf_Richfaces_Ajax4jsf - Fatal编程技术网

Jsf h:outputLabel在RichFaces AJAX调用后的长度更改

Jsf h:outputLabel在RichFaces AJAX调用后的长度更改,jsf,richfaces,ajax4jsf,Jsf,Richfaces,Ajax4jsf,我一直在尝试将RichFaces合并到一个更复杂的页面中,以便通过AJAX使其运行更顺畅。一切都很好,它解决了我在使用常规表单帖子时遇到的一些问题,所以我真的很想保留它。我唯一的问题是,在按下a4j:commandButton后,我的h:outputLabels中的大多数被缩短了3个像素(这些像素位于文本的左侧,这是不寻常的,因为左侧填充、边距和边框宽度都是0px)。这会导致我的许多控件发生轻微的移动,看起来非常不专业。在我看来,与初始渲染相比,重新渲染完成了更精确的工作。以下是我的页面的相关部

我一直在尝试将RichFaces合并到一个更复杂的页面中,以便通过AJAX使其运行更顺畅。一切都很好,它解决了我在使用常规表单帖子时遇到的一些问题,所以我真的很想保留它。我唯一的问题是,在按下
a4j:commandButton
后,我的
h:outputLabel
s中的大多数被缩短了3个像素(这些像素位于文本的左侧,这是不寻常的,因为左侧填充、边距和边框宽度都是0px)。这会导致我的许多控件发生轻微的移动,看起来非常不专业。在我看来,与初始渲染相比,重新渲染完成了更精确的工作。以下是我的页面的相关部分:

<a4j:form id="mainForm">
    ...
    <fieldset id="illustrationDetails">
        <h:outputLabel for="product" value="Product" />
        <h:selectOneMenu id="product" value="#{illustrationManager.illustration.product}" valueChangeListener="#{illustrationManager.illustration.setProduct}" onchange="submit()">
            <f:selectItems value="#{illustrationManager.illustration.products}" />
        </h:selectOneMenu>
        <h:outputLabel for="paymentFrequency" value="Payment" />
        <h:selectOneMenu id="paymentFrequency" value="#{illustrationManager.illustration.paymentFrequency}">
            <f:selectItems value="#{illustrationManager.illustration.paymentFrequencies}" />
        </h:selectOneMenu>
        <h:outputLabel for="expenseGroup" value="Expense Group" />
        <h:selectOneMenu id="expenseGroup" value="#{illustrationManager.illustration.expenseGroupId}">
            <f:selectItems value="#{illustrationManager.illustration.expenseGroups}" />
        </h:selectOneMenu>
    </fieldset>
    ...
    <a4j:commandButton id="calculateButton" value="Calculate" action="#{illustrationManager.calculatePremium()}" ajaxSingle="true" reRender="mainForm" />
    ...
</a4j:form>

...
...
...
在上面的字段集中,除第一个标签外,其他所有标签都存在此问题。第一个标签被渲染为我认为正确的(没有像素的左边)的初始渲染,结果没有改变的重新渲染。
欢迎提出任何建议!另外,如果你想了解更多相关控件的css等信息,请告诉我,我会发布它。

无论如何,这只是部分答案。
h:outputLabel
s左侧的3个像素是由于Mojarra JSF实现在它创建的
标签
标记体的开头添加了一个
\n
字符。我和提交这件事的人一样对为什么要这样做感到困惑。
\n
在显示时会转换为一个空格,这就是我的3个像素

我不知道为什么,但是我的RichFaces AJAX调用触发的重新渲染会删除这些
\n
字符,因此空间不再显示

作为一种解决方法,我在所有标签的前面明确地放置了空格,以便始终显示空格。我很惊讶这不是一个常见的问题