与Seam豆的Prettyfaces

时间:2009-08-12 14:56:22

标签: jsf seam prettyfaces

试图解决这个问题两天没有任何运气。 当我尝试在pretty-config.xml中定义一个url-mapping时,会出现问题,该映射在使用Seam创建的bean上进行中继

<url-mapping id="test">
    <pattern>/test/#{testBean.param}</pattern>
    <view-id>/test.faces</view-id>
</url-mapping>

bean来源:

package com.web.jsfbean;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

@Name("testBean")
@Scope(ScopeType.CONVERSATION)
public class Test {
    private String param;

    @Create
    public void init() {
        param = "initialized";
    }

    public String getParam() {
        return param;
    }

    public void setParam(String param) {
        this.param = param;
    }
}

如果我在faces-config中定义这个bean,一切都按预期工作。

有什么想法吗?

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

这个特定问题已在PrettyFaces版本3.0.1中修复:

现在,使用Seam 2.x时,您将使用以下类型的映射:

<url-mapping id="test">
        <pattern>/test/#{ paramName }</pattern>
        <view-id>/test.faces</view-id>
</url-mapping>

然后你可以使用Seam @RequestParameter(“paramName”)注释来访问它。

@Name("testBean") @Scope(ScopeType.CONVERSATION) public class Test {

    @RequestParameter("paramName")
    private String param;

    @Create
    public void init() {
        param = "initialized";
    }

    public String getParam() {
        return param;
    }

    public void setParam(String param) {
        this.param = param;
    } 
}

答案 1 :(得分:0)

您遇到的问题究竟是什么?我对此很感兴趣。 PrettyFaces应该与Seam合作。尝试在用户组上发布您的问题:http://groups.google.com/group/prettyfaces-users

答案 2 :(得分:-1)

查看JAX-RS。 Jersey是RI,我个人使用JBoss的产品(RESTEasy。)这个框架可以让你做一些你想做的事情。

答案 3 :(得分:-1)

它应该与Seam一起使用,尝试在 web.xml 中更改过滤器的顺序。

如果你所追求的只是书签,那么Seam会捆绑UrlRewriteFilter