gpt4 book ai didi

jsf - 无法使用PrettyFaces过滤器上传文件

转载 作者:行者123 更新时间:2023-12-03 03:51:28 25 4
gpt4 key购买 nike

当我在我的web.xml中添加过滤器代码时

<filter>
<filter-name>Pretty Filter</filter-name>
<filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
<async-supported>true</async-supported>
</filter>

<filter-mapping>
<filter-name>Pretty Filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ASYNC</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>

我无法上传文件并出现异常:
javax.servlet.ServletException: 0
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
........
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at com.ocpsoft.pretty.faces.servlet.PrettyFacesWrappedRequest.getParameter(PrettyFacesWrappedRequest.java:55) [prettyfaces-jsf2-3.3.3.jar:]
at com.sun.faces.context.RequestParameterMap.containsKey(RequestParameterMap.java:147) [jsf-impl-2.2.8-jbossorg-1.jar:]
......

JSF代码:
<h:form enctype="multipart/form-data" id="myForm">
<h:inputFile id="file"
label="file"
value="#{myBean.uploadedFile}"
required="true"
requiredMessage="File not selected !!">
</h:inputFile>
<h:message style="color: red" for="file" /><br />

<h:commandButton id="submit"
action="#{myBean.process}"
value="upload file">

<f:param name="product" value="#{param.product}"></f:param>
</h:commandButton>
<br />
</h:form>

如果我从web.xml中删除了过滤器代码,则可以上传文件并提交表单,否则会遇到上述异常。

我在用 :
  • prettyfaces-jsf2-3.3.3.jar
  • rewrite-servlet-2.0.12.Final.jar
  • JSF 2.2

  • 更新:

    经过大量研究,我发现了问题所在。

    我的项目结构是这样的:
     parentProject
    |
    |---childProject

    其中parentProject是EAR项目,而childProject是Web项目。

    当我添加JAR时,
  • rewrite-servlet-2.0.12.Final.jar
  • rewrite-config-prettyfaces-2.0.12.Final.jar

  • childProject/Web-INf/lib,它可以正常工作。

    但是要求是在我将jar添加到此位置时,将jar添加到 parentProject/EarContent/lib中,prettyfaces映射不起作用。

    我找不到任何解决方案。

    最佳答案

    您正在混合使用PrettyFaces和Rewrite不兼容的版本。您应该使用以下依赖项:

    rewrite-servlet-2.0.12.Final.jar
    rewrite-config-prettyfaces-2.0.12.Final.jar
    rewrite-integration-faces-2.0.12.Final.jar

    那应该工作正常。 :)

    关于jsf - 无法使用PrettyFaces过滤器上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29824971/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com