有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在漂亮面孔中使用正则表达式

我有一个项目,在其中我使用漂亮的面孔进行url重写。 这是一个漂亮的配置。xml

<url-mapping parentId="level2" id="level3" >
    <pattern value="/#{bean.urlLiv3 }">
    </pattern>
    <view-id value="/index.xhtml" />
    <action>#{bean.loadLiv3}</action>
</url-mapping>

<url-mapping parentId="level2" id="level2" >
    <pattern value="/#{bean.urlLiv2}">
    </pattern>
    <view-id value="/index.xhtml" />
    <action>#{bean.loadLiv2}</action>
</url-mapping>

<url-mapping parentId="main" id="level1" >
    <pattern value="#{ /.*-.*/ bean.urlLiv1 }" ></pattern>
    <view-id value="/index.xhtml" />
    <action>#{bean.loadLiv1}</action>
</url-mapping>
    
<url-mapping id="main">
    <pattern value="/" />
    <view-id value="/index.xhtml" />
    <action>#{bean.loadLiv0}</action>
</url-mapping> 

''' 它会上升到5级。 如果在级别1上没有正则表达式/.*-.*/,它对每个级别都可以正常工作,但是当我添加它时,在级别3、4和5上尝试导航时会出现错误。 这就是错误所在

Error parsing url: </urlliv1-8/urlliv2-43/urlliv3-20>, a parameter did not match compiled segment in pattern: /#{ /.*-.*/ bean.urlLiv1 }/#{bean.urlLiv2}/#{ bean.urlLiv3 }

有人知道我为什么会犯这个错误吗? 谢谢


共 (1) 个答案

  1. # 1 楼答案

    抱歉,错误消息有点混乱。这可能是因为在urlLiv1的正则表达式模式中使用了.*

    .*.的一个主要问题是,这些模式将匹配/个字符。尝试使用类似这样的方法:.匹配器的[^/]*