Url rewriting Seam 2.2.0 URL重写不起作用

Url rewriting Seam 2.2.0 URL重写不起作用,url-rewriting,seam,Url Rewriting,Seam,我正在尝试一个简单的URL重写示例,但它对我不起作用。我正在使用部署到JBoss 5.1.0的Seam 2.2.0 My pages.xml包含: <page view-id="/html/index.xhtml"> <rewrite pattern="/home" /> </page> <web:rewrite-filter view-mapping="*.seam"/> 及 ... My components.x

我正在尝试一个简单的URL重写示例,但它对我不起作用。我正在使用部署到JBoss 5.1.0的Seam 2.2.0

My pages.xml包含:

 <page view-id="/html/index.xhtml">
    <rewrite pattern="/home" />
</page>
    <web:rewrite-filter view-mapping="*.seam"/>


...

My components.xml包含:

 <page view-id="/html/index.xhtml">
    <rewrite pattern="/home" />
</page>
    <web:rewrite-filter view-mapping="*.seam"/>


据我从文档中所知,这应该是我所需要的全部。但是,所有的内部链接看起来都不一样,如果输入URL:或mysite/link?param=什么,我只会得到一个404页面。我遗漏了什么?

当我试图从Tuckey重写过滤器移动到Seam时,我遇到了同样的问题。经过一些尝试和错误之后,我终于注意到我的视图有一个page.xml,但在main pages.xml中添加了该模式。前者似乎覆盖了后者。

来自seam文档:


“视图映射参数必须与web.xml文件中为Faces Servlet定义的Servlet映射相匹配。如果省略,重写筛选器将采用模式*.seam。”

我不知道您的方法为什么不起作用。但是不要忘记,您可以使用
viewName.page.xml
文件来实现同样的目的。
例如,由于页面名称为
index.xhtml
,因此必须在包含
index.xhtml
文件的同一文件夹中创建
index.page.xml
文件(在您的情况下,在
html
文件夹中)

index.page.xml
文件中添加此项

<rewrite pattern="/home" />

再次部署,它应该会工作。

感谢您的回复,尽管三年后,我甚至无法访问该项目来测试您的理论。IIRC,我确实解决了这个问题,这是由于我的XML文件在构建过程中被覆盖造成的。我记得这里有一个答案为我指明了正确的方向,我接受了。现在两个都不见了,我不知道这是怎么发生的。