Разбор аргумента с помощью командной ссылки JSF на управляемый компонент

Я попытался разобрать аргумент с помощью JSF для управляемого компонента с помощью ajax. мой код JSF это

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

       </h:commandLink>

управляемый компонент это

@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 "/>".

person top11    schedule 06.06.2016    source источник


Ответы (2)


Вы используете двойные кавычки в своем атрибуте вокруг user.

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

Это приводит к тому, что templete.xml не является допустимым XML-файлом.

Правильная строка примера с использованием одинарных кавычек (как предложено @gWombat):

<h:commandLink id="user" action="#{pageBean.setPage('user')}" >
person Jonas Köritz    schedule 06.06.2016

Параметр user следует заключать в простые кавычки:

action="#{pageBean.setPage('user')}"
person gWombat    schedule 06.06.2016