SpringRoo - webapp中的默认ID太冗长,toString被忽略了吗?

时间:2013-03-01 02:26:11

标签: java spring spring-roo jspx

我开始使用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="/>

如何让这个考试实体打印出一个漂亮的,适合家庭的字符串?

1 个答案:

答案 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="/>