我有一个列表,其中定义了另一个列表。因此,假设它们为反射对象。(列表内的列表内的列表......等等)。在我看来,我从一个是/否问题开始,基于是,我必须显示一组数据。当用户选中 YES 时再次显示该集合。
我可以通过在呈现给客户之前构建问题并隐藏它们来实现这一点,当用户选中“是”时,我启用了该集合。但是我正在工作的集合很大,所以我不想渲染集合并隐藏如果那是没有用的。我想知道是否有更好的方法来实现这一点。(Spring MVC 3,Java 6)
谢谢
我有一个列表,其中定义了另一个列表。因此,假设它们为反射对象。(列表内的列表内的列表......等等)。在我看来,我从一个是/否问题开始,基于是,我必须显示一组数据。当用户选中 YES 时再次显示该集合。
我可以通过在呈现给客户之前构建问题并隐藏它们来实现这一点,当用户选中“是”时,我启用了该集合。但是我正在工作的集合很大,所以我不想渲染集合并隐藏如果那是没有用的。我想知道是否有更好的方法来实现这一点。(Spring MVC 3,Java 6)
谢谢
要在您真正需要时加载“嵌套”问题,您可以使用 ajax。例如,在您的 Spring MVC 控制器中,您可以实现如下方法:
@RequestMapping("/nestedQuestions")
public @ResponseBody List<Question> getNestedQuestions(@RequestParam("parentQuestion") int id){
return yourService.getChildrenQuestionsFor(id);
}
Question
可能是一个简单的对象:
public class Question {
private int id;
private String text;
// ...
}
然后在您的页面中,如果您使用的是 jQuery:
function getNestedQuestions(parentQuestionId) {
$.ajax({
type : "GET",
url : '/nestedQuestions',
data : {
parentQuestion : parentQuestionId
},
success : function(data) {
// for each question in data, show it...
},
error : function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText);
}
});
}
getNestedQuestions
可以从您的单选按钮事件处理程序调用该函数onChange
,并传递父问题 ID。