Ach*_*ius 5 seam url-rewriting
我在几个文件夹中有很多xhtml文件.我想重写网址为
从http:// localhost:8080/folder1/file1.seam到http:// localhost:8080/folder1/file1
在file1.page.xml中我给了
<rewrite pattern="/folder1/file1" />
Run Code Online (Sandbox Code Playgroud)
以上为我提供了正确的模式.但我有很多文件,我不想在每个page.xml文件中指定这个重写模式.有没有办法在pages.xml中指定它?
编辑:
http://localhost:8080/folder2/file2.seam to http://localhost:8080/folder2/file2
http://localhost:8080/folder3/file3.seam to http://localhost:8080/folder3/file3
Run Code Online (Sandbox Code Playgroud)
更多我翻译的样本
基于在pages.xml中为视图找到的重写模式进行重写
Seam URL重写基于相同的模式执行传入和传出URL重写
例:
<page view-id="/home.xhtml">
<rewrite pattern="/home" />
</page>
Run Code Online (Sandbox Code Playgroud)
/home.xhtml/home.seam将被重写为/home重写模式仅匹配查询参数之前的URL部分
这两个都将匹配
/home.seam?conversationId=13/home.seam?color=red重写规则可以考虑这些查询参数
<page view-id="/home.xhtml">
<rewrite pattern="/home/{color}" />
<rewrite pattern="/home" />
</page>
Run Code Online (Sandbox Code Playgroud)
收到的请求/home/red将被视为请求
/home.seam?color=red
如果color是页面参数,则传出URLr /home.seam?color=blue将输出为
/home/blue
记得:
规则按顺序处理
在更一般的规则之前列出更具体的规则
如果你想隐藏会话ID,你可以这样做:
<page view-id="/search.xhtml">
<rewrite pattern="/search-{conversationId}" />
<rewrite pattern="/search" />
</page>
Run Code Online (Sandbox Code Playgroud)
现在/search.seam?conversationId=16将写成/search-16
如果要匹配多个页面,请使用通配符
<page login-required="true" view-id="/admin/*">
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
更新
要回答您的更新问题.
您可以使用外部重写创建通配符重写,但不能使用Seam的URL重写.使用基于视图的重写,您需要为每个视图ID声明一个模式,就像您描述自己一样.对不起,但这就是cookie崩溃的方式.:-)
| 归档时间: |
|
| 查看次数: |
3126 次 |
| 最近记录: |