0

我正在使用以下代码并尝试裁剪从 bean 获取其值的图像:

        <p:panelGrid columns="2">
            <p:row>
                <p:column>
                    <p:imageCropper id="imageCropperId" value="#{imageCropperBean.croppedImage}"
                        image="#{imageCropperBean.newImageName}">
                    </p:imageCropper>
                </p:column>
                <p:column>Bild innerhalb des Rahmens positionieren</p:column>
                <p:column>
                    <p:graphicImage id="localCroppedImage" value="#{imageCropperBean.newImageName}" />
                </p:column>
            </p:row>
            <p:row>
                <p:column colspan="3">
                    <p:commandButton value="Crop" actionListener="#{imageCropperBean.crop}"
                        update=":growl imageCropperId localCroppedImage" />
                </p:column>
            </p:row>
        </p:panelGrid>

我总是收到错误:{0}:发生转换错误。内部咆哮,由于:

value="#{imageCropperBean.croppedImage}" 

声明中的转换器属性说:

为组件定义转换器的 el 表达式或文字文本。当它是一个 EL 表达式时,它被解析为一个转换器实例。如果它是静态文本,则必须引用转换器 ID。

但是 EL 表达式是在 String 处计算的。我该怎么办?如果我把一个普通的字符串指向一个现有的图像,它就可以工作。

4

1 回答 1

0

我已经设法解决了这个错误。

对于那些会遇到同样问题的人,基本上会发生这种情况

  • Either errors are being thrown during cropping phase (e.g. files not found or if the cropped image is not relative to the original one)
  • Either the value which is evaluated from EL image="#{imageCropperBean.newImageName}" is evaluated to null, while trying to skip the cropping (I couldn't suceed with required="true" so I used rendering="someCondition")
于 2013-03-10T07:46:26.423 回答