【问题标题】:Prettyfaces and Converter not workingPrettyfaces和转换器不工作
【发布时间】:2013-02-07 09:37:21
【问题描述】:

在我的 Web 应用程序中,我有一个转换器,可以从 String 转换为 java.util.LinkedHashMap(反之亦然)。当我尝试使用 Prettyfaces 时,我收到 404 resource not found 错误。这是我的设置:

首先根据这个post,我尝试用

装饰转换器
@FacesConverter(forClass = LinkedHashMap.class)

我也试过添加

<converter>
  <converter-for-class>java.util.LinkedHashMap</converter-for-class>
  <converter-class>util.UrlConverter</converter-class>
</converter>

到我的面孔配置,xml。

现在我的 pretty-config.xml 的相关代码是:

<url-mapping id="details">
<pattern value="/dataset/#{id}" />
<view-id value="/faces/details.xhtml" />
</url-mapping>

URL 重写本身有效,所以我最终得到 URL:http://server.com/appname/dataset//someID 重要的 : 这就是我认为可能存在的问题:我所有的 ID 都以“/”开头,所以在“/dataset”部分之后总是有两个“/”。如果这是我的问题的原因,那么我该如何重写这些斜杠呢?

【问题讨论】:

    标签: jsf-2 converter prettyfaces


    【解决方案1】:

    我认为/ 字符确实是您的问题的原因。默认情况下 PrettyFaces 使用正则表达式 [^/]+ 来匹配路径参数。因此,如果您的路径参数包含 / 字符,则映射将不匹配。

    您应该对路径参数使用自定义正则表达式,如下所述:

    http://ocpsoft.org/docs/prettyfaces/3.3.3/en-US/html/Configuration.html#config.pathparams.regex

    这意味着这样的事情应该可以工作:

    <url-mapping id="details">
      <pattern value="/dataset/#{ /.+/ id }" />
      <view-id value="/faces/details.xhtml" />
    </url-mapping>
    

    另一种选择是将/ 字符替换为转换器中的其他字符。

    【讨论】:

    • 您好,感谢您的回答。我还不能测试你的提议,但我有一个后续问题。当我像server.com/appname/dataset/someID 这样手动输入正确的 URL 时(所以没有双斜杠),我得到一个空白页。这不应该正常工作吗?
    • 好的,我测试了它,它可以工作,但我还有另一个问题。我正在使用 primefaces 文件上传组件 (see) 和我为“fileUploadListener”属性指定的方法,一旦我的类路径中有漂亮的库,就不会再触发
    • 这是人们经常遇到的众所周知的问题。我认为您必须配置 PrimeFaces 过滤器来拦截转发的请求或类似的东西。看看论坛。有一些关于此的线程:ocpsoft.org/support/search.php?q=fileupload
    • 是的,谢谢,我已经知道了。不过,我最初的问题有些问题。我决定用“%2F”替换我的 ID 中的所有“/”,并在我的转换器中将它们改回来。现在我应该只需要我在上面发布的设置吧?但是,当我调用像 server.com/appname/dataset/%2FsomeID 这样的 URL 时,我最终会看到一个空白页面,并且没有调用我的转换器方法...
    • 控制台上的任何日志。除非您的应用程序存在其他问题,否则不应发生这种情况。您应该在 PrettyFaces 论坛上发布有关您的设置的更多详细信息。我认为这是讨论这个问题的更好地方。而且我也不确定使用 %2F 是否能正常工作,因为它是 / 的编码形式。所以它实际上和/是一样的。尝试不同的东西,比如 -.
    猜你喜欢
    • 2015-03-06
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多