Если вы уже используете Java EE 7 / EL 3.0, то @page import
также импортирует константы класса в области EL.
<%@ page import="com.example.YourConstants" %>
Это будет под крышками импортироваться через ImportHandler#importClass()
и быть доступным как ${YourConstants.FOO}
.
Обратите внимание, что все java.lang.*
классы уже неявно импортируются и доступны так ${Boolean.TRUE}
и ${Integer.MAX_VALUE}
. Для этого требуется только более поздний сервер контейнеров Java EE 7, поскольку в ранних версиях были ошибки. Например. GlassFish 4.0 и Tomcat 8.0.0-1x не работают, но GlassFish 4.1+ и Tomcat 8.0.2x + работают.
Этот объект доступен только в JSP, а не в Facelets. В случае JSF + Facelets лучше всего использовать OmniFaces
, как показано ниже:
Или добавить прослушиватель контекста EL, который вызывает ImportHandler#importClass()
, как показано ниже:
@ManagedBean(eager=true)
@ApplicationScoped
public class Config {
@PostConstruct
public void init() {
FacesContext.getCurrentInstance().getApplication().addELContextListener(new ELContextListener() {
@Override
public void contextCreated(ELContextEvent event) {
event.getELContext().getImportHandler().importClass("com.example.YourConstants");
}
});
}
}
Это невозможно в EL 2.2 и старше. Существует несколько альтернатив:
Map
, который вы помещаете в область приложения. В EL значения карты доступны обычным javabean способом ${map.key}
или ${map['key.with.dots']}
.
в Unstandard taglib ( maven2 repo здесь ): <%@ taglib uri="http://jakarta.apache.org/taglibs/unstandard-1.0" prefix="un" %>
Таким образом, они доступны обычным javabean способом ${constants.FOO}
.
as описал где-то внизу эту статью . <%@ taglib uri="http://bibeault.org/tld/ccc" prefix="ccc" %>
Таким образом, они доступны обычным javabean способом ${constants.FOO}
.
в OmniFaces .
Таким образом, они доступны обычным javabean способом #{YourConstants.FOO}
. Попробуйте изменить раздел DOCTYPE на:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Вы также можете проверить это: http://www.emailonacid.com/blog/details/C18/12_fixes_for_the_image_spacing_in_html_emails
Для меня
font-size: 0;
line-height: 0;
на упаковке контейнер сделал свое дело.
Самое простое решение этого - просто использовать display:block;
, чтобы превратить изображение в блочный элемент. Плавающее изображение с использованием float:left;
или float:right;
также работает, поскольку оно также превращает его в блочный элемент.
Регулировка свойств, таких как vertical-align
, font-size
и line-height
, также может влиять на расстояние, но это не так надежно, поскольку не устраняет эффект. Это может все еще появиться при некоторых обстоятельствах.
Смежные вопросы:
Нежелательный интервал под изображениями в XHTML 1.0 Strict
Почему мои изображения получили дополнительный интервал?
Проблема с пространством изображения IE
извините за ответ на этот вопрос 3 года спустя, но эта страница находится на первой странице Google, и я чувствую ответственность ..... ответ: добавьте только "vertical-align: top;" в тег img внутри тега и тега .
Ну, я понял.
это была комбинация
font-size: 0px;
line-height: 1;