我开始使用Spring Roo了。到目前为止,它似乎是基于CRUD的应用程序的一个不错的Java选项。
我已经使用在线SpringRoo教程之一创建了一个基本的Web应用程序。
我已经设置了基本的脚手架,看起来在应用程序中列出了具有一对多关系的对象:
List all Exam Modules
Difficulty Category Exam Id
Easy Software Design 2013-02-28 15:01:29.0 2013-02-28 15:01:29.0 Test Software Exam
考试ID是对考试实体的引用,如下所示:
import org.springframework.roo.addon.dbre.RooDbManaged;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
import org.springframework.roo.addon.tostring.RooToString;
@RooJavaBean
@RooJpaActiveRecord(versionField = "", table = "exam")
@RooDbManaged(automaticallyDelete = true)
public class Exam {
@Override
public String toString() {
return id + ": " + desc;
}
}
之前,使用@RoToString
配置toString这在Web应用程序中没有反映出来,因此可能在那里显示的字符串不会调用toString方法。
我在jspx中的代码如下:
<table:column id="c_com_mypackage_examino_domain_ExamModule_examId" property="examId" z="iz7M0ohWIJEbf7nEYqPLkvKKtcE="/>
如何让这个考试实体打印出一个漂亮的,适合家庭的字符串?
答案 0 :(得分:0)
查看ApplicationConversionServiceFactoryBean.java(或.aj)。
会有一种方法public Converter<Exam, String> getExamToStringConverter()
或
public Converter<ExamPK, String> getExamToStringConverter()
更改它,使其仅包含您想要查看的字段。
或者,您可以在Exam.java中添加一个bean样式方法,该方法返回您想要的字符串并将其作为属性调用。这假设您已经创建了一个名为getMyExamId()的方法,该方法返回您想要的字符串。请注意,您需要将z更改为“用户管理的”
<table:column id="c_com_mypackage_examino_domain_ExamModule_examId" property="myExamId" z="user-managed="/>