2012-04-23 2 views
0

Я новичок в Spring и Spring MVC. Я разработал некоторые веб-приложения в ASP.NET, и другой подход, за которым следует эта структура, немного меня путает.Значение параметра для атрибутов управления Spring MVC

Теперь я пытаюсь разработать образец приложения, и мне нужно изменить текст некоторых элементов управления (кнопок, меток и т. Д.).

Например: У меня есть кнопка, которая запускает/останавливает процесс извлечения данных. Я хотел бы установить текст кнопки «СТАРТ», а затем, когда я нажму на нее (и процесс запустится), я хотел бы установить текст кнопки «STOP». Аналогичные изменения должны быть сделаны для нескольких меток.

В ASP.NET я просто устанавливаю свойство Text каждого элемента управления.

Как добиться этого с помощью Spring MVC, с контроллера?

Примечание Это также относится и к каждому атрибуту управления ...

ответ

1

Вы можете добавить параметры к возвращенной модели. Например:

//some other controller code 
@RequestMapping("/start") 
public ModelAndView start(....) { 
     ModelAndView mav = new ModelAndView("example"); 
     mav.addObject("button_text", "START"); 

     return mav; 
} 
//... 

затем, в вашем example.jsp:

<input type="button" value="${button_text}" /> 

Однако, это выглядит, как вы пытаетесь реализовать идеи, взятые из рамок на основе компонентов, используя действие-ответ один, что может быть не лучшей идеей.

+0

Я пришел из ASP.NET, поэтому, возможно, вы правы, когда говорите: «похоже, вы пытаетесь внедрить навигацию на основе компонентов с помощью action-response» _. Итак, какой подход я должен придерживаться? Непонятен ли мой вопрос? – davioooh

+0

@ daviooh, если вы все еще можете изменить структуру, вы, вероятно, почувствуете себя как дома с JSF (хотя это хорошая идея, чтобы узнать весну). Если вы не можете этого сделать, попробуйте не думать о компонентах. Весной у вас есть представления (обычно jsp, которые являются лишь небольшим шагом от чистого html), контроллеры (которые реагируют на действия из представлений, как правило, формируют представления и данные ajax) и модели (данные, которые вы отправляете обратно с контроллера для просмотра) , Весной он свободно связан. Нет сопоставления 1-к-1 из элементов html в элементы контроллеров/моделей. – soulcheck

+0

Итак, вместо того, чтобы помещать ярлык в модель (метки - это IMO, о чем не должен беспокоиться ваш контроллер), отправьте логическое значение, указывающее, запущено или нет, и решите, какую метку отображать в представлении, исходя из значения этого логическое значение. Но это действительно зависит от личного вкуса. – soulcheck

0

Я не про себя, но так, как я это делаю это с помощью JavaScript.

Некоторый код будет нечто вроде

function changeText() { 
    var button = document.getElementById("yourButtonId"); // same as the id attribute of the button 
    button.value = "STOP"; 
} 

А потом в коде Jsp вы могли бы:

<input type="button" name="someName" value="START" onclick="changeText()"/> 

Я думаю, что могла бы работать.

Позже отредактируйте: я вижу, что вы спросили, как это сделать с контроллером, что означает код Java, извините, если мой ответ не то, что вы ищете.

+0

Благодарим за предложение. Я хотел бы знать, можно ли установить значение атрибута непосредственно из кода. Если нет, я буду следовать вашему подходу ... – davioooh

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