'u kullanma konusunda kafam karıştı. Spring MVC mimarisini anlamaya çalışıyorum. Ancak, @SessionAttributes davranışı tamamen kafam karıştı.@SessionAttributes
Lütfen aşağıda SampleController kısmına bakın, SuperForm sınıfının post yöntemini ele alıyor. Aslında, sadece SuperForm sınıfı alanı beklediğim gibi bağlayıcıdır. Ancak, Denetleyicide @SessionAttributes koyduktan sonra, işleme yöntemi SubAForm olarak bağlayıcıdır. Bu bağda ne olduğunu bana açıklayan var mı?
-------------------------------------------------------
@Controller
@SessionAttributes("form")
@RequestMapping(value = "/sample")
public class SampleController {
@RequestMapping(method = RequestMethod.GET)
public String getCreateForm(Model model) {
model.addAttribute("form", new SubAForm());
return "sample/input";
}
@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>
Çok teşekkürler! Açıklaman süper! Netleşiyorum. – zono
Açıklama için teşekkürler, "Bu, @SessionAttribute register() ile getCreateForm() tarafından modele yerleştirilen model özniteliği nesnesinin aynı örneğini alır." Her iki şekilde de formda girilen whaterver kullanıcısı alıyorsunuz, bu cümlede ne demek istiyorsunuz? Demek istediğim, her alanın doğru değerlerini aldığınıza göre, sessionAttribute özelliğini kullanmanın anlamı nedir? Bir şey mi eksik? – Jack
, @SessionAttributes veya @SessionAttribute? : p –