这是我的 JSF 文件的开头:
<?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"
xmlns:ace="http://www.icefaces.org/icefaces/components"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
</h:head>
<h:body>
但是,http://www.icefaces.org/icefaces/components
和 http://java.sun.com/jsp/jSTL/core
会突出显示呈红色,并显示错误 URI 未注册
。这会导致许多其他后续标签显示为红色,并出现错误此处不允许元素“x”
。这是一张显示我的意思的图片:
尝试的解决方案:
在寻找解决方案时,似乎其他有同样问题的人通过执行“获取外部资源”解决了该问题。但是,这对我不起作用。对于icefaces xmlns xmlns:ace="http://www.icefaces.org/icefaces/components"
我收到错误:获取http://www.icefaces.org时出错/icefaces/组件
。对于 jSTL xmlns xmlns:c="http://java.sun.com/jsp/jSTL/core"
我收到错误: 该位置没有 XML:http:///java.sun.com/jsp/jSTL/core
.
我还发现有些人通过删除 .idea
目录中的 IntelliJ IDEA 元数据文件 workspace.xml
解决了这个问题。这似乎暂时有效......但似乎过了一段时间问题又回来了。我还必须重新配置几个我想避免的项目设置。
任何帮助将不胜感激..我不太熟悉 xmlns 的东西,而且仍然是网络应用程序开发的初学者。谢谢!
更新:
根据 Mark Vedder 的回答,我手动将外部资源添加到我的项目中,到目前为止问题尚未再次出现。
最佳答案
对于未注册的资源,第一个解决方案是使用“获取外部资源”快速修复。如果失败,就像本例中的情况一样,(通常是因为“位置”只是名义上的),您需要手动配置它。
手动配置
- 如果资源(即
.xsd
、.dtd
等)存在于您的某个库 jar 中,请跳至步骤 2。否则,下载副本的资源。将其放在系统上方便的位置。 - 在 IDEA 中,将光标放在错误上,输入 Alt+Enter 打开“快速修复/意图”菜单,然后选择“手动设置外部资源”。 (如果您没有此选项(基于 IntelliJ IDEA 版本),请转到下一部分以获取说明。)
- 如果资源位于 jar 中,请选择
Schemas
选项卡并从相应的 jar 中选择资源。如果您下载了该文件,请选择Explorer
选项卡(在 Mac 中可能名为 Finder),然后导航到并选择您下载的文件。 - 单击“确定”并让 IDEA 为资源建立索引。
通过 IDE 设置进行编辑或设置
- 通过 Ctrl+Alt+Enter 或文件 > 设置打开设置对话框。
- 要为所有 future 的新项目进行配置以使此架构可用,请通过文件 > 其他设置 > 默认设置打开类似的对话框
- 在
项目设置
部分中,找到架构和DTD
节点。 - 配置所需的架构。右上角有添加、编辑和删除图标。与上面一样,您可以通过
Schemas
选项卡选择库中的文件,或者通过Explorer
选项卡选择文件系统。
更新
各种 JSF Taglib 定义(适用于 JSF 2.x 及更高版本)可以在 com.sun.faces 的
jar。 com/sun/faces/metadata/taglib
目录中找到: jsf-impljsf-impl
JAR 文件可以从 maven central 下载。等地方。
关于JSF xmlns URI 未在 IntelliJ IDEA 中注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23410936/