在我的web应用程序中,我有一个从String到java.util.LinkedHashMap (反之亦然)的转换器。当我尝试使用Prettyfaces时,我得到了404资源未找到错误。下面是我的设置:
首先,根据这个post,我尝试用来装饰转换器
@FacesConverter(forClass = LinkedHashMap.class)我还试着添加
<converter>
<converter-for-class>java.util.LinkedHashMap</converter-for-class>
<converter-class>util.UrlConverter</converter-class>
</converter>对我的脸-config,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”部分之后总是有两个"/“。如果这是我的问题的原因,那么我该如何重写这些斜杠呢?
发布于 2013-02-22 14:14:04
我认为/这个角色才是你问题的真正原因。默认情况下,PrettyFaces使用正则表达式[^/]+来匹配路径参数。因此,如果您的路径参数包含/字符,则映射将不匹配。
您应该为path参数使用自定义正则表达式,如下所述:
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>另一种选择是将转换器中的/字符替换为其他字符。
https://stackoverflow.com/questions/15012830
复制相似问题