- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些如下的Facelets文件。
网页内容
|-index.xhtml
|-register.xhtml
|-模板
| | --userForm.xhtml
| `--banner.xhtml
:
两个页面都使用/templates
目录中的模板。我的/index.xhtml
在浏览器中可以正常打开。我得到了生成的HTML输出。我在/index.xhtml
文件中有一个链接到/register.xhtml
文件。
但是,我的/register.xhtml
没有得到解析,并以纯XHTML /原始XML而不是其生成的HTML输出形式返回。所有以#{...}
形式显示的EL表达式均按原样显示,而不是打印其结果。当我在浏览器中右键单击页面并执行View page source时,我仍然看到原始的XHTML源代码,而不是生成的HTML输出。例如,<h:body>
没有成为<body>
。看起来模板没有被执行。
但是,当我在浏览器的地址栏中打开/register.xhtml
之类的/faces/register.xhtml
时,它会正确显示。这是怎么引起的,我该如何解决?
最佳答案
有三个主要原因。FacesServlet
不被调用。
XML名称空间URI丢失或错误。
多个JSF实现已加载。
1.确保URL匹配FacesServlet
映射
链接的URL(在浏览器的地址栏中显示的URL)必须与<url-pattern>
的FacesServlet
的web.xml
匹配,以使所有JSF作品都能运行。 FacesServlet
是负责解析XHTML文件,收集提交的表单值,执行转换/验证,更新模型,调用操作以及生成HTML输出的程序。如果您不通过URL调用FacesServlet
,那么您将获得的所有内容(并通过右键单击在浏览器中查看源代码来查看)确实是原始的XHTML源代码。
如果<url-pattern>
例如是*.jsf
,则链接应指向/register.jsf
,而不是/register.xhtml
。如果像您一样,例如/faces/*
,则链接应指向/faces/register.xhtml
,而不是/register.xhtml
。避免这种混乱的一种方法是将<url-pattern>
从/faces/*
更改为*.xhtml
。因此,以下是理想的映射:
<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<url-pattern>
更改为
*.xhtml
,那么您可能还希望阻止最终用户通过URL直接访问XHTML源代码文件。在这种情况下,您可以在
<security-constraint>
的
<url-pattern>
上添加一个
*.xhtml
,并在
<auth-constraint>
中添加一个空的
web.xml
,以防止出现以下情况:
<security-constraint>
<display-name>Restrict direct access to XHTML files</display-name>
<web-resource-collection>
<web-resource-name>XHTML files</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint />
</security-constraint>
FacesServlet
的URL模式下自动注册
*.xhtml
来解决上述所有问题。因此,替代方法是简单地升级到最新可用的JSF版本,该版本应为JSF 2.3或更高版本。但是理想情况下,您仍然应该仅在
FacesServlet
的一个URL模式上显式注册
*.xhtml
,因为对于完全相同的资源(例如
/register.xhtml
,
/register.jsf
,
/register.faces
和
/faces/register.xhtml
)拥有多个可能的URL对SEO不利。 。
xmlns.jcp.org
是JSF 2.2以来的新功能,在旧版JSF中不起作用。症状几乎与未调用
FacesServlet
相同。
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
java.sun.com
XML名称空间:
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
ConfigureListener
中有不必要的
web.xml
条目导致其被加载时两次。
<!-- You MUST remove this one from web.xml! -->
<!-- This is actually a workaround for buggy GlassFish3 and Jetty servers. -->
<!-- When leaving this in and you're targeting Tomcat, you'll run into trouble. -->
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
关于jsf - JSF返回带有纯/原始XHTML/XML/EL源的空白/未解析页面,而不是呈现的HTML输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54866725/
我正在寻找 css 属性以隐藏带或不带 css 类的段落,如果它包含空格 ( ) 或空白,但我想至少保留一个带或不带的段落,如果有更多的话。 隐藏段落,如果它是空白的或包含 white-space(
在 ruby 中对空白有不同的敏感度/设置吗? 我有一个 RoR 项目,其中一个事件记录调用有很多组件: max_stuff = FooSummary.select("max(stuff)
如何在脚注中的数字后留空? 一般来说,对于所有脚注! 例子: 好 : 1 Hello World 坏:1Hello World 最佳答案 正确答案是不要重新定义\thefootnote ,因为这会在脚
我有这段代码,每次第一个 for 循环再次开始时,我希望它将数组重置为空白,因为它正在使用新用户,但我得到的输出包含一个数组中的所有值。 var items = []; for (var i
我试图在CakePHP中生成一个动态xml文档,以输出到浏览器。 这是我的 Controller 代码: Configure::write ('debug', 0); $this->layout =
当我尝试在 nxos 设备上运行某些命令时,输出末尾有一个空格。我必须将输出与现有变量列表进行比较。末尾的空格导致比较错误。如何在字符串列表中使用 .strip() 函数? - name: Curre
我对 Elasticsearch 相当陌生,我一直在尝试对我的数据进行搜索,并且总是让点击部分为空。即使在数据上传和索引之后也会发生这种情况。我的映射如下: { "mappings":{
我想将about:blank页面更改为firefox插件首页页面的url。 如何更改默认的新标签页网址或可以为新标签页提供默认网址? 我正在使用Firefox附加SDK。 最佳答案 您可以结合使用Ta
我正在使用 R 并具有以下数据框示例,其中所有变量都是因子: first second third social birth control high
如何清空显示对话框的页面。下面是我的代码HTML: .ui-dialog, .ui-dialog-content { border:1px solid #cde68c; border-botto
更新“他的问题是要求我只运行一次 str ,他们已经告诉我该函数只需要一个参数)” 我试图返回第一个不重复的字符,例如:“blazqnqbla”->第一个不重复的字符是“z”,因此函数需要返回z。现在
我的登录验证有问题。问题是当我尝试使用管理员登录时,页面停止在 checklogin.php 上并且不会告诉它是否成功。这是我的代码。 索引.html Aplik
我的查询是这样的 SELECT Distinct tm.teamid,tm.Team_Name,CONCAT_WS(' ',tu.FirstName+' '+tu.LastName) as Leade
我正在创建指向页面的超链接 url 由用户输入决定,因此由查询字符串决定 ; 问题是变量状态由两个或多个单词组成。因此,当我尝试单击证明表单中输入的超链接时,仅获取状态变量的第一个单词。浏览器将另一个
该问题在每个浏览器中的表现都不同,例如在 Firefox 中大约一个空格如果您再次滚动到顶部,则会出现具有相同高度的滚动框。在 chrome 中,滚动时框会变得狭窄等等...... 使用的调用是:
我对菜单栏文字之间的 CSS 空白有疑问。我尝试了很多方法,但仍然无法解决。有人可以帮我吗? 菜单问题图片如下: http://imageshack.us/photo/my-images/201/44
我对 有疑问.其中的插入符根据是否为空具有不同的垂直位置: 我的代码: textarea { padding: 0 5px; border: none; outline: n
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Ignore whitespace in HTML 我想在网页上将图片并排放置。这是我的 HTML:
每当我尝试检查元素时,什么都没有出现。我在使用 Chrome。我明白了 Elements | Network | Sources | Timeline | Profiles | Resources |
我在使用 Chrome、Firefox 和 IE 时遇到了一个奇怪的问题。我正在为我的投资组合网站/博客构建一个 WordPress 主题,一切都很好,直到今天,当我在 chrome 中查看该网站时,
我是一名优秀的程序员,十分优秀!