Jsf 2 JSF2上载带有primefaces问题的照片

Jsf 2 JSF2上载带有primefaces问题的照片,jsf-2,Jsf 2,我使用以下片段上传照片,使用primefaces: <ui:composition 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" xmlns:p="http://primefaces.org/ui"> <

我使用以下片段上传照片,使用primefaces:

<ui:composition 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"
xmlns:p="http://primefaces.org/ui">
    <h:outputText value="PrimeFaces Single Upload"  />
    <h:form enctype="multipart/form-data">
        <p:fileUpload fileUploadListener="#{uploadPhotoHandler.handleFileUpload}" mode="advanced"
            update="messages" label="Choose a file" sizeLimit="5242880" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
            invalidSizeMessage="The maximum file size allowed is 1 Megabyte !"
            invalidFileMessage="You are allowed to upload only images !" />
        <p:growl id="messages" showDetail="true" sticky="true" />
我有以下问题:

  • 进度条不起作用
  • “取消”按钮不起作用,最大的问题是sizeLimit无法验证作为输入提供的文件
  • 即使这不是自动上载,文件也会自动上载,而无需单击“上载”按钮
该问题100%与
标题
部分有关,因为如果我删除该部分,它会起作用。但是,它不适用于同一页面中的其他功能,因此我必须保留
js
文件和
样式


感谢您的回复。

摆脱手动包含的jQuery。PrimeFaces已自动包含自己的副本。如果它们是不同的版本,那么只会发生冲突,导致所有颜色的JS相关问题。如果您在浏览器的开发者工具集中检查了JS控制台,您就会注意到这一点。

SSCCE会有所帮助。你的作文确实很奇怪。通常,
h:head
h:body
进入主模板,并且不会在子模板中重复。你有HTML吗?另请参见@BalusC我已更新并试图更清楚地说明问题。问题100%与主页的标题部分有关。(我不知道为什么我不能格式化问题中的main.xhtml代码)。你能再见吗?谢谢。我感谢你的帮助!为什么要手动将jQuery和all包含在em中?PrimeFaces已经自动包含jQuery,它只会与手动包含的jQuery冲突。至于代码格式,只需选择代码并按消息编辑器工具栏中的
{}
按钮即可。您知道,您是有权利的。当我开始使用JSF时(几天前),我没有使用primefaces,所以这就是我手动添加jquery的原因。但现在我已经删除了al js的东西,一切正常。非常感谢你的帮助。我也非常感谢SO对JSF和web相关内容的所有贡献。现在所有的jquery js都消失了,我有一个错误,说这个对象没有方法菜单。我是否应该忘记jquery的东西,只关注素数?或者,这是一种使用jquery功能的方法(如果primefaces中有jquery的副本)。谢谢,您可以继续使用jQueryUI自己的副本。如果您的页面不一定使用PrimeFaces组件(因此不一定在所有页面上都自动包含jQuery),那么您可以通过
强制包含捆绑在jQuery中的PrimeFaces。好的,但我在这个页面中使用的是“菜单”功能,如果我添加了jQuery库,我必须加上所有其他的,因为它们相互依赖。所以我回到原来的问题上。您确实需要而且不应该需要添加自己的jQuery副本,原因与答案中提到的完全相同。PrimeFaces不会绑定jQuery UI(相反,它会根据jQuery UI语法自动生成HTML,并且只绑定一个自定义的jQuery UI CSS文件副本),因此您可以绑定自己的jQuery UI JS文件副本(如果需要,还可以绑定上面的主题CSS文件,因为PrimeFaces不会使用整个jQuery UI主题)。
<?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 lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="js/jquery-migrate-1.1.1.js"></script>
    <script type="text/javascript" src="js/jquery.ui.widget.js"></script>
    <script type="text/javascript" src="js/jquery.xdr-transport.js"></script>
    <script type="text/javascript" src="js/jquery.fileupload.js"></script>
    <script type="text/javascript" src="themes/jquery-ui-1.10.0.custom/js/jquery-ui-1.10.0.custom.min.js"></script>
    <link type="text/css" rel="stylesheet" href="themes/jquery-ui-1.10.0.custom/css/sunny/jquery-ui-1.10.0.custom.css" />
    <link type="text/css" rel="stylesheet" href="css/base.css" />
    <link type=" text/css" rel="stylesheet" href="css/styles.css" />
</h:head>
<h:body>
    <div id="container" class="container ">
        <ui:include src="upload_img_form.xhtml" />
    </div>
</h:body>
</html>