只有tomcat服务器才能正确显示.jsf页面。当我尝试通过eclipse添加项目并查看和测试时,它不会呈现.jsf代码,而是将其显示为源代码。我为tomcat配置了eclipse并且工作正常但是无法获取.jsf页面呈现它只是在通过eclipse添加到服务器时显示源代码但是如果我导出.war文件并在tomcat / webapps上运行它它工作正常。
来自eclipse的源代码示例:
<?xml version="1.0" encoding="UTF-8" ?>
<!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" xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>PCC Accounts Login</title>
</h:head>
<h:body>
<h:outputStylesheet name="style.css"></h:outputStylesheet>
<h:outputText>testing output text tag WITHOUT using value attributeHELLo ????</h:outputText>
<h:outputText value="testing outputText WITH using the value attribute" />
<h:form>
<h:inputText id="user_id" title="User Name" value="User Name" action="#{loginBean.setUsername}">User Name</h:inputText>
<h:inputText id="password" title="Password" value="Password" action="#{loginBean.setPassword}">Password</h:inputText>
<!-- <h:commandButton id="login" value="Login" action="accounts.jsf">Login Now</h:commandButton> -->
<h:commandButton id="login" value="Login" action="accounts.jsf" />
</h:form>
</h:body>
</html>
从eclipse导出并在tomcat上运行的源代码示例:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="j_idt2">
<title>PCC Accounts Login</title>
<link type="text/css" rel="stylesheet" href="/assign05_test/javax.faces.resource/style.css.jsf" />
</head>
<body>
<input type="hidden" name="j_idt9" value="j_idt9" />
<input id="j_idt9:user_id" type="text" name="j_idt9:user_id" value="User Name" title="User Name" />
<input id="j_idt9:password" type="text" name="j_idt9:password" value="Password" title="Password" />
<input id="j_idt9:login" type="submit" name="j_idt9:login" value="Login" />
</form>
</body>
</html>
所以,Eclipse显然没有呈现JSF页面,但我将正确的文件添加到Preferences / Java / BuildPath / UserLibraries中。所以我不确定为什么它不起作用但是现在我通过导出.war然后在tomcat服务器上运行它进行测试,这是一个非常繁琐的过程。还有其他人遇到这个问题吗?非常感谢任何帮助,提前谢谢。
尊敬, 马丁手
答案 0 :(得分:0)
这是web.xml中的servlet映射:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
将其更改为此并且已修复:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
有趣但是它只在尝试运行Eclipse时影响了它,但是如果导出.war
然后在tomcat中添加到/webapps
它很好但是在尝试开发时这是一个非常乏味和烦人的过程应用。如果您遇到问题,请阅读此有用的文章 - JSF tags not being rendered as HTML