使用JSF commandlink解析与托管bean的参数

时间:2016-06-06 08:22:40

标签: jsf jsf-2 el commandlink

我尝试使用ajax将JSF的参数解析为托管bean。我的JSF代码就是这个

        <h:commandLink id="user" action="#{pageBean.setPage("user")}" >
                                    user
                   <f:ajax execute="user" render="contentBody" />

       </h:commandLink>

托管bean就是这个

@ManagedBean
public class PageBean {
    private String path;
    private String page;

    public PageBean() {
    }

    @PostConstruct
    public  void init(){
        path = "/WEB-INF/dashboard.xhtml";
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }
 }

但是当我运行这个时,我得到了以下错误。这是为什么?

Error Parsing /WEB-INF/templete.xhtml: Error Traced[line: 37] Element type "h:commandLink" must be followed by either attribute specifications, ">" or "/>".

2 个答案:

答案 0 :(得分:1)

您在user周围的属性中使用双引号。

<h:commandLink id="user" action="#{pageBean.setPage("user")}" >

这导致templete.xml没有成为有效的XML文件。

使用单引号更正示例行(由@gWombat提议):

<h:commandLink id="user" action="#{pageBean.setPage('user')}" >

答案 1 :(得分:0)

您应该在参数 user 周围使用简单的引号:

action="#{pageBean.setPage('user')}"