Nano Hash - криптовалюты, майнинг, программирование

Весна. Привязка флажков к ModelAttribute

Невозможно привязать флажки к @ModelAttribute.

HTML:

<form method="post">
    <p><input type="checkbox" name="list" value="v1" /></p>
    <p><input type="checkbox" name="list" value="v2" /></p>
    <p><input type="checkbox" name="list" value="v3" /></p>
    <p><input type="checkbox" name="list" value="v4" /></p>
    <p><input type="submit" value="Send" /></p>
</form>

Джава:

@RequestMapping(value = "/", method = RequestMethod.POST)
public String index(@ModelAttribute("list")List<String> list, ModelMap model)
{
    LoggerFactory.getLogger(this.getClass()).debug("list: " + list.size() + " " + list);
    ...
}

Проверял v2 и v3. Только в "индексе" первое значение:

список: 1 [v2]

Если я создаю форму с тегом spring:

<form:form modelAttribute="testForm">
    <p><form:checkbox path="list" value="v1" /></p>
    <p><form:checkbox path="list" value="v2" /></p>
    <p><form:checkbox path="list" value="v3" /></p>
    <p><form:checkbox path="list" value="v4" /></p>
    <p><input type="submit" value="Отправить" /></p>
</form:form>

ТестФорма.java:

public class TestForm
{
    private String[] list;

    public String[] getList()
    {
        return list;
    }

    public void setList(String[] list)
    {
        this.list = list;
    }
}

Все в порядке!

Как привязать флажок к @ModelAttribute без тега spring?


  • Кроме того, я пытаюсь использовать ‹form method=post› ‹p›‹тип ввода=флажок name=list value=v1 /›‹input type=hidden name=_list value=on /›‹/p› ‹p›‹input type= имя флажка=значение списка=v2 /›‹тип ввода=скрытое имя=_значение списка=on /›‹/p› ‹p›‹тип ввода=флажок имя=значение списка=v3 /›‹тип ввода=скрытое имя=_list значение=on /›‹/p› ‹p›‹тип ввода=флажок имя=список значение=v4 /›‹тип ввода=скрытое имя=_список значение=on /›‹/p› ‹p›‹тип ввода=отправить значение=Отправить /›‹/p› ‹/form› 27.01.2012

Ответы:


1

Проверить : public String index(@RequestParam("list") List<String> list, ModelMap model)

27.01.2012

2

Изменить ниже источники..

TestForm.java:

public class TestForm
{
    private List<String> list;

    public List<String> getList()
    {
        return list;
    }

    public void setList(List<String> list)
    {
        this.list = list;
    }

    public void setList(String list)
    {
        this.list.add(list);
    }
}

Java:

@RequestMapping(value = "/", method = RequestMethod.POST)
public String index(@ModelAttribute TestForm list)
{
    ...
}
11.04.2020
  • Объясните, почему это решает проблему. 11.04.2020
  • Если вы объявите public void setList(Stirng list) this.list.add(list); в TestForm, @ModelAttribute может получить значения флажка в списке одно за другим. 14.04.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..