Не получается изображение в h: graphicImage в JSF - PullRequest
0 голосов
/ 31 марта 2010

У меня очень странная ошибка с h: graphicImage

Этот код отлично работает: -

<h:graphicImage value="/Common/Images/#{item.templatePicName}"/>

А этот нет: -

<h:graphicImage alt="${app:getCommonImagePath(item.templatePicName)}"  value="${app:getCommonImagePath(item.templatePicName)}" />

Показывает только альтернативное значение /Common/Images/Sunset.jpg, которое отлично работает и работает в 1-м случае. Тогда почему это не работает во втором случае? Там нет проблем с моими изображениями. Они присутствуют в правильном каталоге.

здесь getCommonImagePath - моя пользовательская EL-функция, определение которой:

package Common;


public final class AppDeployment {

    private AppDeployment(){ //hide constructor

    }

    private static String commonImageFolderPath = "/Common/Images/";
    public static String getCommonImagePath(String picName){
        return commonImageFolderPath + picName;
    }
}

Ответы [ 2 ]

2 голосов
/ 31 марта 2010

С JSF вы должны использовать #{..} вместо ${..}.

Затем проверьте созданный HTML-код, чтобы увидеть, на что указывает src созданного изображения.

Затем проверьте, правильно ли сопоставлен ваш пользовательский тег.

1 голос
/ 31 марта 2010

Его проще решить, если у вас в классе приложения есть свойство, объединяющее то, что вы хотите.

е:

class App {
    private String commonImagePath="/Common/Images/";

    //getters and setters
} 

Тогда вы бы написали:

<h:graphicImage alt="#{app.commonImagePath}#{item.templatePicName}" value="#{app.commonImagePath}#{item.templatePicName}" />
...