Spring 在JSP中,表示从bean中的其他字段构建的字段
我正在开发一个Java项目,使用SpringMVC框架和JSP作为我的视图。我想知道如何最好地表示从作为模型属性使用的bean中的属性派生的字段。在我的示例中,DisplayName字段是由一个人可能拥有的所有不同的名称字段(first、last、middle、prefix等)组成的 例如,如果我有一个Person bean,看起来像这样:Spring 在JSP中,表示从bean中的其他字段构建的字段,spring,jsp,spring-mvc,javabeans,Spring,Jsp,Spring Mvc,Javabeans,我正在开发一个Java项目,使用SpringMVC框架和JSP作为我的视图。我想知道如何最好地表示从作为模型属性使用的bean中的属性派生的字段。在我的示例中,DisplayName字段是由一个人可能拥有的所有不同的名称字段(first、last、middle、prefix等)组成的 例如,如果我有一个Person bean,看起来像这样: public class Person { private String lastName; private String firstNa
public class Person {
private String lastName;
private String firstName;
.
.
.
**A bunch more name fields here
.
.
.
**All the getters and setters here
.
.
.
public String getDisplayName() {
//Simple example
return this.firstName + " " + this.lastName;
}
}
因此,如果我想让我的显示名将所有这些字段与一些逻辑结合起来,然后在JSP上显示,我应该如何构建它
我是否应该在控制器中构建一个“displayName”字符串,然后将其作为附加的模型属性传入
我应该在bean中创建一个方法来构建它(参见上面的示例),然后从JSP访问它吗?使用以下方法似乎对我有效:
${person.getDisplayName()}
处理这种模式的正确方法是什么
编辑附加信息
在我的控制器中,我将Person对象作为模型属性传递
@RequestMapping(value = "/path", method = RequestMethod.GET)
public String getMethod(final Locale locale, final Model model, final HttpServletRequest request) {
Person myPerson = getThePersonFromSomewhere();
model.addAttribute("person", myPerson);
return "the view";
}
然后在JSP视图中,我像这样访问它
<div>
First Name: ${person.firstName}
Display Name: ${wondering how to do this}
</div>
名字:${person.firstName}
显示名称:${正在考虑如何执行此操作}
只要您的
Person
类中有公共字符串getDisplayName()
方法,并且这是一种简单合理的方法,就应该可以工作。您的问题是不明确的。首先,${person}
单独打印还是不打印?(预计正在打印Person#toString()
)。如果它已经没有打印任何内容,那么您需要后退一步,关注如何为视图准备模型,而不是关注模型的属性。从JSP中的Person对象访问属性(例如${Person.firstName})。编辑要描述的问题。谢谢。哦,现在我明白了。您基本上希望在单个调用中使用${person.firstName}${person.middleName}${person.lastName}
,例如${person.displayName}
?您有一个公共字符串getDisplayName(){return firstName+“”+middleName+“”+lastName;}
方法,它似乎不打印任何内容?为什么不在任何地方显示有问题的方法?@Ali,是的,打字错误,谢谢,修复了。@BalusC,实际上我做错了,${person.getDisplayName()}正在为我工作。编辑问题以反映这一点(仍不知道这是否是处理此类逻辑的“最佳”方式)。
Display Name: ${person.displayName}