Вопрос

В моем приложении Java EE есть администрирование статей.Есть URL-адрес типа http://localhost:8080/articles/detail.xhtml?article=70 где статья означает идентификатор статьи.На этой странице отображаются комментарии к статьям и т. д.это не важно.Но есть кнопка «Редактировать», и я хотел бы перенаправить на страницу edit.xhtml, но пользователь все равно должен видеть http://localhost:8080/articles/detail.xhtml?article=70 потому что я не хочу, чтобы страница редактирования была доступна для закладок.

Можете ли вы помочь мне, как настроить Face-config для изменения страницы, но не URL-адреса?Я подумал, что если я не напишу <redirect /> тогда URL останется прежним, но я ошибался.URL-адрес изменится с detail.xhtml?article=70 к detail.xhtml

Спасибо за любой совет.

Это было полезно?

Решение

Я бы предложил использовать некоторые аяксические возможности, чтобы не запускался синхронный запрос.

<h:panelGroup id="article" layout="block">
    <h:panelGroup rendered="#{!bean.editmode}">
        View article (can if necessary be an ui:include)
        <h:form>
            <h:commandButton value="Edit" action="#{bean.edit}">
                <f:ajax render=":article" />
            </h:commandButton>
        </h:form>
    </h:panelGroup>
    <h:panelGroup rendered="#{bean.editmode}">
        Edit article (can if necessary be an ui:include)
        <h:form>
            <h:commandButton value="Save" action="#{bean.save}">
                 <f:ajax render=":article" />
            </h:commandButton>
        </h:form>
    </h:panelGroup>
</h:panelGroup>

Бин:

private boolean editmode;

public void edit() {
    this.editmode = true;
}

public void save() {
    this.editmode = false;
}

public boolean isEditmode() {
    return editmode;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top