我試圖用MyFaces 2.2.8設置一個簡單的JSF 2.2應用程序。 由於MyFaces有一些我以前從未使用的上下文參數,我試圖熟悉這些參數。submitForm()未爲myfaces定義.JSF_JS_MODE'minimal-modern'
所以我第一次使用org.apache.myfaces.JSF_JS_MODE
,並遇到h:commandLink
的問題。 如果我將模式設置爲minimal-modern
,commandLink正嘗試呼叫myfaces.oam.submitForm()
,這是未定義的。 如果我將模式設置爲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);
}
}
缺少什麼我在這裏?提前致謝!
非常酷。感謝您打開並修復它! – tobwoerk