我是grails 1.3.7
的新手,我遇到了问题。
我想在一个list/array/map/
中存储不同的元素/参数...
要存储的数据如下所示:
id : answera, answerb, answerc, answerd, answere, answerf, answerg, answerh
id
是number
answers
是booleans
所以我得到了很多ids
(好吧,也许是20个)和每个8个答案 - 布尔。
如何将它们存储得最好,以便我可以再次轻松访问它们?
谢谢: - )
[编辑]非常感谢这些答案,我现在就试试吧! : - )
我现在有一个包含id(int)的地图和一个代表我的答案的对象(它是一个包含booleans answera,answerb等的pojo ...)
现在我将此地图提供给gsp。我怎么知道从中获取数据?感谢帮助! : - )
答案 0 :(得分:2)
地图将是最好的方法,但它确实与grails无关。您是否需要将这些内容保存到域类/数据库?
地图会是什么样的......
def map = [:]
map.put(id1, [new Answer(accepted:true), new Answer(accepted:false)];
map.put(id2, [new Answer(accepted:false), new Answer(accepted:false)];
我认为这不会为您提供一个易于使用的域类。听起来你想要一个grails域类来封装答案。有点像...
class Question{
static hasMany = [answers:Answer]
Integer id
Boolean answered
def hasBeenAnswered(){
answers.each(){ answer->
if (answer.accepted){
answered = true;
return true;
}
}
return false;
}
def acceptAnwser(Answer answer){
answer.accepted = true;
this.answered = true;
}
}
class Answer{
static belongsTo = [question:Question]
Integer id
Boolean accepted
String text
}
然后你的代码会更容易使用......
def allQuestion = Question.list();
def allUnansweredQuestions = Question.findAllByAnswered(false);
def allAnsweredQuestions = Question.findAllByAnswered(true);
答案 1 :(得分:1)
Map
似乎是一个明显的结构。地图的键应该是ids,Map的值应该是List<Boolean>
或(可能最好)一个封装这8个布尔值的类。