如何在java中的Spring MVC表单中使用两个Modal Class属性

时间:2017-10-22 04:12:29

标签: java spring spring-mvc

新注册表

第1步:UserLoginDTO.java

private String userName;
private String password;

第2步:UserInfoDTO.java

private String firstName;
private String lastName;

第3步:导航至注册表

  

http://localhost:8080/Demo/navigate/customerRegisterForm

控制器:

@Controller
@RequestMapping("/navigate")
public class NavigationController {

    @RequestMapping("/customerRegisterForm")
    public String customerRegisterForm(Map modelmap) {
        System.out.println("Entering the New Customer Registarion Portal... ");
        UserInfoDTO infoDto = new UserInfoDTO();
        UserLoginDTO loginDto = new UserLoginDTO();
        modelmap.put("infoDto", infoDto);
        modelmap.put("loginDto", loginDto);
        return "customer/newCustomer";
    }

}

第4步:newCustomer.jsp

<form:form method="post" modelAttribute="loginDto">

<form:input path="userName"/>
<form:input path="password"/>
<form:input path="firstName"/>
<form:input path="lastName"/>

<input type="submit" value="Add Employee"/>


</form:form>
  

注意:在步骤3中,将两个模型类添加到模型图中,并在步骤4中单独使用 modelAttribute =“loginDto”。所以下面是错误抛出。 org.springframework.beans.NotReadablePropertyException:bean类的无效属性'firstName'[com.pharmacy.dto.UserLoginDTO] 我需要在视图部分中使用这两个模型类

1 个答案:

答案 0 :(得分:0)

添加一个新类FormDto,将您现有的两个模型作为属性。

obj.toString()

修改您的控制器以将FormDto作为modelAttribute发送。

public class FormDto {
    private UserLoginDto loginDto;
    private UserInfoDto infoDto;

    //......add getter/setter 
}

最后,更改表单属性。

@RequestMapping("/customerRegisterForm") 
public String customerRegisterForm(Map modelmap) {
    System.out.println("Entering the New Customer Registarion Portal... ");
    FormDto formDto = new FormDto();
    modelmap.put("formDto", formDto);
    return "customer/newCustomer"; 
}