Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > JSF form action


Автор: a.S.d 31.10.2007, 22:27
Возможно ли в JSF стандартными средствами делать post запросы так, чтобы аттрибут action формы содержал полный URL текущей страницы?
По-умолчанию query string обрезается, что после ASP .NET ужасно неудобно.

Автор: necromancer 1.11.2007, 00:28
вполне
есть такая штука называется prettyURL
https://javaserverfaces.dev.java.net/sandbox/components/prettyUrl.html

Автор: a.S.d 1.11.2007, 01:57
Спасибо, но мне нужно не это.

Есть страница /index.jsp
Код

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <f:view>
                <h:form>
                    ..........

                </h:form>
            </f:view>
    </body>
</html>


Набираем в IE http://localhost:8080/MyApplication/faces/index.jsp?id=33

Получаем следующую страницу:
Код

.................
<form id="j_id_jsp_627023921_1" name="j_id_jsp_627023921_1" method="post" action="/MyApplication/faces/index.jsp;jsessionid=1614FC74A6242C97950A0E73CC02647A" enctype="application/x-www-form-urlencoded">
............
</form>
............


В action отсутствует параметр id=33. Почему? Это очень неудобно, если это страница допустим 
для редактирования какой-либо сущности, то при сабмите я не буду знать id и показать пользователю будет нечего.

Автор: necromancer 1.11.2007, 09:56
особенность технологии JSF в том что все запросы с формы отправляются через POST
то что я привел выше должно способствовать тому что бы когда от сервера вернулся ответ в урле стоял твой вожделенный id

так же есть другие варианты решения:
1 написать обертку или переписать компонент form
2 использовать hidden поля с id в качестве параметра (тогда сервер будет знать что это за сущность а клиент увы нет)
3 внутрь тэга субмит поместить вспомогательный тэг f:param name="" value="" с указанием id

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)