我刚开始学习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以显示一个全名,还是可以在控制器中进行某种后处理?
答案 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
的函数。班级的内部结构取决于你。