我在从Javascript加载Facelets页面时遇到问题。我正在使用Netbeans 7.2,Glassfish 3.1.2和Java EE 6。
我做了一个简单的测试页面:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<script type="text/javascript">
window.location.href = "index.xhtml";
</script>
<title>winq match!</title>
</h:head>
<h:body>
<h1>WING MATCH!!</h1>
<h:form>
<h:commandButton id="Next" value="weiter" action="index"/>
</h:form>
</h:body>
应加载index.xhtml
的{{1}}页面为:
window.location.href
页面已加载但未解析,因此浏览器不会解释<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<h:outputText value="TestTestTestTestTest"/>
msg <h:inputText id="ema" value="#{testBean.inputValue}" maxlength="1" />
<h:commandButton id="but" value="Submit" action="index"/>
</h:form>
</h:body>
标记。在网上搜索之后,似乎我是唯一一个有这样问题的人。也许我误解了JSF的某些方面。我希望得到一些建议。
答案 0 :(得分:0)
您需要确保请求网址与webapp FacesServlet
中定义的web.xml
的网址格式相匹配。它就是负责执行所有JSF / Facelets工作的人。
例如,如果您已将其映射到*.jsf
,那么您应该在该网址模式上打开该网页,以便正确调用FacesServlet
并找到index.xhtml
档案并做所有必要的事情。
window.location.href = "index.jsf";
或者,您也可以将FacesServlet
的网址格式更改为*.xhtml
。这样您就不必担心虚拟URL。