JSF xmlns URI未在IntelliJ IDEA中注册

Chr*_*kie 12 xhtml jsf intellij-idea

这是我的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>
Run Code Online (Sandbox Code Playgroud)

但是,http://www.icefaces.org/icefaces/componentshttp://java.sun.com/jsp/jstl/core以红色突出显示错误URI is not registered.这会导致许多其他后续标记显示为红色且有错误element 'x' is not allowed here.这是一张显示我的意思的图片:

xmlns和标签显示为红色

尝试的解决方案:

在搜索解决方案时,似乎有一些具有相同问题的其他人通过执行"获取外部资源"来解决它.但是,这对我不起作用.对于icefaces xmlns xmlns:ace="http://www.icefaces.org/icefaces/components"我得到错误:Error while fetching http://www.icefaces.org/icefaces/components.对于jstl xmlns xmlns:c="http://java.sun.com/jsp/jstl/core"我收到错误:No XML at the location: http://java.sun.com/jsp/jstl/core.

我也发现了一些人通过删除IntelliJ IDEA的元数据文件解决它workspace.xml.idea目录中.这似乎暂时起作用......但似乎问题在一段时间后回来了.我还必须重新配置几个我想避免的项目设置.

任何帮助将不胜感激..我不是很熟悉xmlns的东西,仍然是Web应用程序开发的初学者.谢谢!

更新:

根据Mark Vedder的回答,我手动将外部资源添加到我的项目中,到目前为止问题还未重新出现.

小智 24

可能的问题可能是“Java EE:Java Server Faces”插件被禁用。您可以通过浏览到 “设置”>“插件”并在“已安装”选项卡上搜索“Java Server Faces”来启用它。

  • 截至 2022 年 6 月,它是 Jakarta EE:Server Faces (JSF) (7认同)

Jav*_*aru 23

对于未注册的资源,第一种解决方案是使用"获取外部资源"quickfix.如果失败,就像在这种情况下那样,(通常因为"位置"仅在名称中),您需要手动配置它.

手动配置

  1. 如果资源(即.xsd,.dtd等)在你的jar包的一个存在,跳到步骤2.否则,下载资源的副本.把它放在你系统上方便的地方.
  2. 在IDEA中,将光标置于错误上,键入Alt+ Enter并选择"手动设置外部资源" ,打开"快速修复/意向"菜单.(如果您没有此选项(基于IntelliJ IDEA版本),请转到下一节以获取说明.)
  3. 如果资源位于jar中,请选择Schemas选项卡并从相应的jar中选择资源.如果您已下载它,请选择Explorer选项卡(可能在Mac中命名为Finder)并导航到并选择您下载的文件.
  4. 单击OK,让IDEA索引资源.

通过IDE设置编辑或设置

  1. 通过Ctrl+ Alt+ Enter文件>设置打开设置对话框.
    • 要配置所有未来的新项目,以便可以使用此模式,请通过" 文件">"其他设置">"默认设置"打开类似的对话框
  2. 在该Project Settings部分中,找到Schemas and DTDs节点.
  3. 配置所需的架构.右上角有添加,编辑和删除图标.如上所述,您可以通过Schemas选项卡选择库中的文件,也可以通过选项卡选择文件系统Explorer.

UPDATE

各种JSF Taglib定义(适用于JSF 2.x及更高版本)可以com/sun/faces/metadata/taglibcom.sun.faces:jsf-impljar 目录中找到.该jsf-implJAR文件可以从以下地址下载行家中心在其他地方.

  • 在IDEA Community Edition 14.0.2而不是Project Seetings中,您可以找到语言和框架. (4认同)