尽管图像已加载,但在primefaces中具有属性图像的图像裁剪器不会裁剪

时间:2013-07-24 21:26:43

标签: jsf primefaces glassfish

如果我改变

image="#{pageContext.servletContext.contextPath}/upload
/#{fileUploadController.imagemTemporaria}"

并放

image="/imagens/#{fileUploadController.imagemTemporaria}" 

图像已加载。另一方面,方法裁剪停止工作。

我的图片位于F:\imagens-retaguarda\imagens

我的描述符包含以下内容

 <property name="alternatedocroot_1" value="from=/imagens/* 
 dir=F:\imagens-retaguarda\" />

你知道为什么会这样吗?

下面是我的代码。

<h:form>

    <p:outputPanel id="outputPanelUpload">

        <h:panelGrid columns="2">

            <h:outputText value="Imagem" rendered="#{fileUploadController.exibeBotao}"/>
            <h:outputText value="Pré-visualização" rendered="#{fileUploadController.exibeBotao}"/>
            <p:imageCropper id="imageCropperImagemTemporaria" 
                value="#{fileUploadController.croppedImage}" 
                image="#{pageContext.servletContext.contextPath}/upload/#{fileUploadController.imagemTemporaria}" 
                initialCoords="0,0,50,50" 
                maxSize="250,163" 
                minSize="30,30" />
            <h:panelGroup rendered="#{fileUploadController.exibirPreVisualizacao}">
                <p:graphicImage value="#{fileUploadController.imagemEnviada}" cache="false"/>
            </h:panelGroup>

        </h:panelGrid>

        <br/>

        <p:commandLink action="#{fileUploadController.crop}" update="outputPanelUpload" rendered="#{fileUploadController.exibeBotao}" value="Pré-visualizar" id="preVisualizar"/>

    </p:outputPanel>

    <br/>
    <br/>

    <p:fileUpload fileUploadListener="#{fileUploadController.enviarImagem}" sizeLimit="1000000" auto="true" update="outputPanelUpload" label="Escolher"/>

</h:form>  

1 个答案:

答案 0 :(得分:0)

对p:imageCropper有一个限制,它不适用于glassfish中的备用docroot

  来自primefaces论坛的

     

ImageCropper可以在webroot和外部图像中裁剪本地图像   位于http://。我不认为这是一个错误,但更像是一个   限制,因为它不支持像这样的glassfish特定的东西。

link to above quoute by optimus

一些友好的论坛用户已经整理了一个如何构建完整网址的代码片段。 Havnt自己测试了它,但从概念上说它应该可以工作。

<p:imageCropper id="croppedImg" 
   value="#{controller.croppedImage}" 
   image="#{request.requestURL.substring(0, request.requestURL.length() - request.requestURI.length())}#{request.contextPath}/Screens/Image.png" 
   initialCoords="10,10,200,200" />

link