Java MVC, чтобы санкционировать данные о контроле

Я новый в MVC и я хотел бы знать, где санкционируется, что у контроля вида была информация. Например, чтобы складывать два числа в следующем примере: где я санкционирую, что txtNumero1 и txtNumero2 вида не будьте пустыми?

public class Modelo {
09     //Variables
10     private int valor1;
11     private int valor2;
12    
13 
14     public Modelo(){}
15 
16     public void set_valor1(int val){
17         this.valor1=val;
18     }
19 
20     public int get_valor1(){
21         return this.valor1;
22     }
23 
24     public void set_valor2(int val){
25         this.valor2=val;
26     }
27 
28     public int get_valor2(){
29         return this.valor2;
30     }
31 
32     public int sumar(){
33         return  this.valor1 + this.valor2;
34        
35     }
36   }

Вид

У него есть ящик текста (txtNumero1), ящик текста (txtNumero2), ящик текста (txtResultado) и кнопка btnSumar.

Драйвер

public class controlador implements ActionListener{
12 
13     private vista vista;
14     private Modelo modelo;
15 
16     
18     public controlador( vista vista , modelo modelo){
19         this.vista = vista;
20         this.modelo = modelo;
21         this.vista.cmdsumar.addActionListener(this);
22     }
23 
24     
25     public void iniciar_vista(){
26         vista.setTitle( "Sumar" );
27         vista.setLocationRelativeTo(null);
28     }
32 
33     
36     public void actionPerformed(ActionEvent e) {
37         modelo.set_valor1(Integer.valueOf( vista.txtNumero1.getText() ) );
38         modelo.set_valor2( Integer.valueOf( vista.txtNumero2.getText() )          vista.txtResultado.setText(String.valueOf(modelo.sumar()) );
41     }
42 
43 }

Откуда он мог бы санкционировать? С модели, с драйвера или с обоих?

2
задан 11.06.2016, 00:45
3 ответа

SegГєn я самое правильное состояло бы в том, чтобы санкционировать в драйвере, так как это тот, кто берется за то, чтобы обрабатывать данные из-за asГ - говорить вид Гєnicamente представляет их и модель, так как это шаблон объектов, что ты будешь использовать следовательно сильную часть, чтобы программировать, или самым надежным как правило является драйвер и serГ - в более подходящий санкционировать allГ -

1
ответ дан 24.11.2019, 14:12
  • 1
    Он мог бы быть в драйвере: лиши тебя bool санкционировать () {if (vista.txtNumber.getText.equals (" ")) JOptionPane (" нет n и # 250; mero1") return false.....} и призывать в valdiar с actionPerformed controller? – Daniel 09.06.2016, 00:19
  • 2
    oooo уже entend и # 237; то, чего ты хочешь добиться, хороший, так как твой пример достаточно простой, будет больше f и # 225; cil санкционировать в событии, а именно ты манипулируешь bot и # 243; n, чтобы освобождать событие, чтобы суммировать не? тогда был бы м и # 225; s f и # 225; cil санкционировать в этом куске c и # 243; я говорю, что тебя производит среда. этот if, который ты прокомментировал наверху, размести это в событии кнопки этой формы, если у тебя есть что-то, что суммировать ты осуществляешь операции, если бы не у него не было случая проматывать ресурсы из-за очень минимальных, что были – Missael Armenta 09.06.2016, 00:36

Если ты будешь использовать утверждения этого типа, я использовал бы аннотации JSR-349 (https://jcp.org/en/jsr/detail? id=349). Например, что не были пустыми:

public class Modelo {
09     //Variables
       @NotEmpty
10     private int valor1;
       @NotEmpty
11     private int valor2;
12    
13 
14     public Modelo(){}
15 
16     public void set_valor1(int val){
17         this.valor1=val;
18     }
19 
20     public int get_valor1(){
21         return this.valor1;
22     }
23 
24     public void set_valor2(int val){
25         this.valor2=val;
26     }
27 
28     public int get_valor2(){
29         return this.valor2;
30     }
31 
32     public int sumar(){
33         return  this.valor1 + this.valor2;
34        
35     }
36   }

Таким образом, ты санкционировал бы полный bean, кроме того я вижу, что ты используешь struts, лично предпочитаю Спринг MVC, для меня он гораздо более могущественный. Я оставляю тебе пример, как он был бы использован:

@Controller
public class Controller {

    @RequestMapping(value = "/sumar", method = RequestMethod.POST)
    public String sumar(@Valid Modelo modelo, BindingResult result) {
        // lógica
    }
}

С аннотацией @Valid, автоматически реализуй утверждение данных о вводе. Таким образом, ты не должен строить себе специфические методы для всех утверждений.

Я надеюсь помочь тебе в чем-то!

0
ответ дан 24.11.2019, 14:12
  • 1
    Большое спасибо Кристиан, я только что начинаюсь в среде desktop, Для desktop, как ты это видишь? – Daniel 09.06.2016, 14:40
  • 2
    Мне кажется, что использование этих аннотаций - этот aplicaci и # 243; n - это как использование bazuka, чтобы удалять алтарь и # 241; в. –  09.06.2016, 22:44

Обычно, когда мы говорим о MVC, мы имеем в виду одну aplicaciГіn Веб. Если ты начинаешься с этой парадигмой, я рекомендую тебе изучать Спринг МВК с видео Инфинитескильс де Кевина Bowersox, они в inglГ©s, но он имеет лучшее.

, Когда ты относишься в validaciГіn, понимают две вещи:

  1. ValidaciГіn Объекта (Ты можешь санкционировать в драйвере используя Спринг)
  2. ValidaciГіn полей vГ - в JSP (Ты можешь использовать HibernateAnnotations или JS)

Она combinaciГіn обоих делает более надежная ты aplicaciГіn.

Кристиан дает тебе образец того, насколько могущественная может быть Спринг.

типов Привета

0
ответ дан 24.11.2019, 14:12