【问题标题】:Eclipse not rendering jsf?Eclipse不渲染jsf?
【发布时间】:2014-06-21 07:00:57
【问题描述】:

只有 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 服务器上运行它,这是一个非常乏味的过程。还有其他人遇到这个问题吗?任何帮助将不胜感激,在此先感谢。

尊敬的, 马丁汉德

【问题讨论】:

  • 你也可以添加你的 web.xml 文件吗?
  • 看看这是否有效。 stackoverflow.com/questions/2207616/…
  • @EvesMary Yeessss!那篇文章有帮助并且有效,我的讲师说要在 web.xml 中添加 url 映射 *.jsf ,这就是我所做的,但我将其更改为 &lt;servlet-mapping&gt;&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;&lt;url-pattern&gt;*.xhtml&lt;/url-pattern&gt;&lt;/servlet-mapping&gt; 并已修复。我之前有&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;,但被告知我需要它来调用jsf引擎。猜猜不是,谢谢!
  • 如果您能将我的帖子标记为有用的帖子也会很有帮助。

标签: eclipse jsf tomcat


【解决方案1】:

在 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

【讨论】:

  • 你用的是什么网址?它是否以 .xhtml 结尾?你在使用某种 ULR-Rewrite 吗?
猜你喜欢
  • 2011-08-19
  • 1970-01-01
  • 2014-07-14
  • 1970-01-01
  • 2011-09-09
  • 2012-11-28
  • 2012-04-01
  • 1970-01-01
  • 2011-06-19
相关资源
最近更新 更多