2013-03-01 38 views
1

我開始使用Spring Roo。到目前爲止,這似乎是基於CRUD的應用程序的一個體面的Java選項。SpringRoo - webapp中的默認Id太冗長,toString被忽略?

我已經創建了一個基於在線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 

考試編號是一個考試參考實體如下:

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; 
    } 
} 

之前的toString用@RooToString

這並沒有反映在Web應用程序配置,因此,或許顯示的字符串沒有調用toString方法。

我在JSPX代碼如下:

 <table:column id="c_com_mypackage_examino_domain_ExamModule_examId" property="examId" z="iz7M0ohWIJEbf7nEYqPLkvKKtcE="/> 

如何得到這個考試的實體打印出一個漂亮的,家庭友好的字符串中的任何想法?

回答

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