2011-02-06 3 views
0

Опубликовать методы, обработанные классом SuperController из-за совместного использования кода. Я думаю, что такие, как @Controller и @SessionAttributes, являются наследуемыми, поэтому я должен просто поместить их в класс subController. Правильно ли я предполагаю?Должен ли я помещать @Controller или @SessionAttributes в класс SuperController?

------------------------------------------------------- 

@Controller 
@SessionAttributes("form") 
@RequestMapping(value = "/sample") 
public class SampleController extends BaseController { 

    @RequestMapping(method = RequestMethod.GET) 
    public String getCreateForm(Model model) { 
     model.addAttribute("form", new SubAForm()); 
     return "sample/input"; 
    } 

} 

------------------------------------------------------- 

public class BaseController { 

    @RequestMapping(method = RequestMethod.POST) 
    public String register(@ModelAttribute("form") SuperForm form, Model model) { 
     return "sample/input"; 
    } 

} 

------------------------------------------------------- 

public class SuperForm { 

    private Long superId; 

    public Long getSuperId() { 
     return superId; 
    } 

    public void setSuperId(Long superId) { 
     this.superId = superId; 
    } 

} 

------------------------------------------------------- 

public class SubAForm extends SuperForm { 

    private Long subAId; 

    public Long getSubAId() { 
     return subAId; 
    } 

    public void setSubAId(Long subAId) { 
     this.subAId = subAId; 
    } 

} 

------------------------------------------------------- 

<form:form modelAttribute="form" method="post"> 
    <fieldset> 
     <legend>SUPER FIELD</legend> 
     <p> 
      SUPER ID:<form:input path="superId" /> 
     </p> 
    </fieldset> 
    <fieldset> 
     <legend>SUB A FIELD</legend> 
     <p> 
      SUB A ID:<form:input path="subAId" /> 
     </p> 
    </fieldset> 
    <p> 
     <input type="submit" value="register" /> 
    </p> 
</form:form> 
+0

@ Унаследованное присутствие в @SessionAttributes. Это кажется декларацией как наследуемыми аннотациями. Извините, я написал глупый вопрос. – zono

ответ

1

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

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