Я попытался настроить простое приложение JSF 2.2, используя MyFaces 2.2.8. Поскольку в MyFaces есть некоторые контекстные параметры, которые я никогда раньше не использовал, я попытался с ними ознакомиться.
Итак, я впервые использовал org.apache.myfaces.JSF_JS_MODE
и столкнулся с проблемами с h:commandLink
. CommandLink пытается вызвать myfaces.oam.submitForm()
, который не определен, если я установил режим minimal-modern
. Если я устанавливаю режим minimal
или normal
, он работает.
Прочитав некоторые статьи в Интернете, я предполагаю, что это ошибка, потому что submitForm не является ни частью jsf-legacy.js, ни jsf-i18n.js, ни jsf-experimental.js, и, по-видимому, он нужен h:commandLink
. Также комментарий к исходному коду org.apache.myfaces.shared.renderkit.html.util.ResourceUtils.markScriptAsRendered(FacesContext, String, String)
говорит мне
Скрипт oamSubmit включен в jsf.js
здесь:
public static void markScriptAsRendered(FacesContext facesContext, String libraryName, String resourceName)
{
getRenderedScriptResources(facesContext).put(
libraryName != null ? libraryName+'/'+resourceName : resourceName, Boolean.TRUE);
if (JAVAX_FACES_LIBRARY_NAME.equals(libraryName) &&
JSF_JS_RESOURCE_NAME.equals(resourceName))
{
// If we are calling this method, it is expected myfaces core is being used as runtime and note
// oamSubmit script is included inside jsf.js, so mark this one too.
getRenderedScriptResources(facesContext).put(
MYFACES_LIBRARY_NAME+'/'+MYFACES_JS_RESOURCE_NAME, Boolean.TRUE);
}
}
Что мне здесь не хватает? Заранее спасибо!