JSF 1.2 h:commandLink无法正常工作,mojarra未定义

时间:2014-11-03 10:36:23

标签: java jsf navigation richfaces jsf-1.2

我在websphere 7上遇到了JSF 1.2的问题。 我试图用JSF实现导航。 我也使用RichFaces。

在浏览器的控制台中,我收到此错误:Uncaught ReferenceError: mojarra is not defined

我已经看到了其他问题,他们通过添加<h:head>解决了这个问题,但这对我没有用。

感谢您的帮助

我的navigation.xhtml

<?xml version="1.0" ?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<ui:composition>
    <h:form>
        <!-- Navigation -->
        <div id="navigation" class="navigation">
            <div class="level0">
               <h:commandLink action="#{navigation.toHome}" value="#{messages.elsi_dg_navigation_home}" />
            </div>
            <div class="level0">
                <h:commandLink action="#{navigation.toHistory}" value="#{messages.elsi_dg_navigation_history}" />
            </div>
        </div>
    </h:form>
</ui:composition></body></html>

NavigationBean.java

@Controller("navigation")
@Scope("session")
@ManagedBean
public class NavigationBean {

private String lastSite = "home";


public String toHome() {
    return this.processOutcome("home");
}

public String toHistory() {
    return this.processOutcome("history");
}

public String toCurrentPage() {
    return this.lastSite;
}

private String processOutcome(String outcome) {
    this.lastSite = outcome;
    return outcome;
}
}

HTML输出:

<div id="navigation" class="navigation">
<form id="j_id19" name="j_id19" method="post" action="/elsi-dg/xhtml/home.xhtml" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_id19" value="j_id19">
    <!-- Navigation -->
    <div id="navigation" class="navigation">
        <div class="level0"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_id19'),{'j_id19:j_id21':'j_id19:j_id21'},'');return false">Home</a></div>
        <div class="level0"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_id19'),{'j_id19:j_id23':'j_id19:j_id23'},'');return false">History</a></div>
    </div><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="3428583661652779493:-8865896015881316410" autocomplete="off">
</form>
</div>

更新

<a4j:commandLink>没问题。

1 个答案:

答案 0 :(得分:0)

问题可能出在标签 ui:compostion

 <ui:composition template="./template/template.xhtml">

通常需要模板文件

你正在使用吗? 如果您不是,请尝试删除<ui:composition>标记。