2014-01-31 2 views
6

Я искал и искал, и это уничтожает меня. У меня есть это:s: удаляемые параметры формы тега

<s:form method="post" action="%{methodOne}" cssClass="buttons"> 

emailFormUrl возвращает URL правильно, но параметры были лишены.

public String methodOne() { 
    return anotherClass.methodTwo(id); 
    } 

Который говорит:

public static String methodTwo(
     String id) { 
    return fastEncode("", "longurl/view.jsp", 
     new ParameterPairing("id", id)); 
    } 

По какой-то причине идентификатор раздевание, это оставляет меня с ошибкой проверки и не выполнить действие, которое я требую. Насколько мне известно, перед июльским срочным обновлением безопасности у нас не было проблем, но это небольшая функциональность, которая редко используется (аргумент для ее удаления я предполагаю).

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

+0

Если вы делаете почтовый запрос, почему вам нужны эти параметры в URL-адресе? –

+0

Короче говоря, я не знаю, это мои первые несколько месяцев, используя стойки после университета (Университет: место, которое оставляет вас думать, что вы знаете все до тех пор, пока вы не узнаете, что у вас есть такое же количество знаний, как павлин). По сути, я настраиваю url, у которого есть параметр id экземпляра. Форма отправляет информацию и дает указание отправить электронное письмо, содержащее информацию, которая рассчитывается на основе этого идентификатора экземпляра. Я тестировал все другие действия этого действия = «% {method», и они, похоже, отлично реагируют. Я хотел добавить <скрытый параметр>, который – Phish

+0

, конечно, исправляет его, но поскольку он использовался для работы, мне нужно выяснить, что не так и что изменилось. Мое понимание не охватывает достаточно широты, чтобы знать, почему мы пытаемся завершить действие с помощью этого метода. Мне жаль, что я не могу предоставить больше информации - мы все учились однажды, но эй? – Phish

ответ

1

В среде сервлетов тег <s:form> использует класс ServletUrlRenderer для визуализации формы URL. Если настройка для действия, указанного в атрибуте action, не найдена, то будет использоваться буквальное значение (без параметров) атрибута action.

Примечание: вам необходимо использовать имя действия без расширения, чтобы его можно было найти в конфигурации. Таким образом, some_action?foo=bar будет настроен с параметрами в форме, если у вас есть some_action в конфигурации, но some_action.action?foo=bar не будет найден из-за .action расширение и параметры будут удалены.

+0

В соответствии с замечанием выше, извините, что я исчез, имел некоторые скелетные проблемы, оказывается, что лестница не моя подруга. Я буду читать и играть снова сегодня днем. Однако я не понимаю комментария римлян. – Phish

Смежные вопросы