一种形式的多个变量:选择

时间:2015-09-03 12:31:09

标签: spring jsp spring-mvc

我刚开始学习Spring / MVC。我有一个基本的模型/控制器/ JSP工作。

我有一个包含几个表单项的表 - 第一行是这个:

<div id="general">
<table>
<tr>
    <td><form:select path="systemType" items="${systemTypes}" /></td>  
</tr>

这很好用 - 选择框使用在systemType上具有set方法的bean发送用户输入。

那么如果我说User怎么办?它们在模型bean中有名字/姓氏。强迫某人使用两个选择框来选择他们的名字和姓氏是没有意义的。

 <tr>
    <td>
    <form:select path="User" items="${users.firstName} ${users.lastName}" />
    </td>  
 </tr>

所以我使用jstl来显示“名字+姓氏”。但是,获取该输入并将其返回到我的模型bean的最佳方法是什么,其中第一个和最后一个是分开的?我应该只更改我的模型bean以显示一个全名,还是可以在控制器中进行某种后处理?

1 个答案:

答案 0 :(得分:0)

WebDataBinder是在Spring / MVC中重新格式化/处理查看器和控制器之间数据的良好/正式方式。还有一个例子here

但你可以简单地使用一个setter(简单的例子,没有错误处理):

class Name {
    private String first;
    private String last;

    void setFullName(String fullName) {
        String[] parts = fullName.split(" ");
        first = parts[0];
        last = parts[1];
    }
}

在视图中这样:

<form:select path="User" items="${fullName}" />

当Spring运行一个名为setFullName的变量时,它将调用一个名为fullName的函数。班级的内部结构取决于你。