我正在尝试将标记添加到我的网站 我已经在java EE 7 jsf 2.2和primefaces 4.0下完成了我的网站,并且正在使用glassfish 4,但我的生产环境将有jboss,我注意到此应用程序服务器上没有可用的java EE 7,所以我将我的网站降级为java EE,这导致我使用jsf 2.1
我现在面临的问题是我的渲染项目有问题。特别是带有输入文件标签的表单,因为我收到了错误
<h:inputFile> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag was defined for name: inputFile
如果我删除它,其余页面可以正常工作,在浏览器中呈现,但仍然无法正常工作。
在我必须呈现不同的面板组(其中包含primefaces标签)的页面中,它们被呈现但是broswer命中警告
malformedXML: During update: javax.faces.ViewState not found
我无法理解为什么会这样。
我需要解决这个问题,使我的页面可以使用inputfile标签。
如果我使用primefaces inputfile仍然页面不起作用,因为渲染停止工作
答案 0 :(得分:0)
<h:inputfile>
是JSF 2.2特定标记,在JSF 2.1中不可用。但您可以使用组件库提供的上传组件。由于您已经在使用primefaces,请使用它们的组件。
答案 1 :(得分:0)
虽然这个问题有一个公认的答案,但并不总是可以使用特定组件套件中的上传组件。特别是如果你已经使用另一个。其中许多人使用例如引擎盖下的jquery,不幸的是没有处于无冲突模式。一个仍然有效的替代方案是使用BalusC的解决方案:http://balusc.omnifaces.org/2009/12/uploading-files-with-jsf-20-and-servlet.html
答案 2 :(得分:-1)
来自Primefaces的FileUpload有错误,似乎没有计划修复它,你只能在每次上传时上传第一个文件。