0

我有一个列表,其中定义了另一个列表。因此,假设它们为反射对象。(列表内的列表内的列表......等等)。在我看来,我从一个是/否问题开始,基于是,我必须显示一组数据。当用户选中 YES 时再次显示该集合。

我可以通过在呈现给客户之前构建问题并隐藏它们来实现这一点,当用户选中“是”时,我启用了该集合。但是我正在工作的集合很大,所以我不想渲染集合并隐藏如果那是没有用的。我想知道是否有更好的方法来实现这一点。(Spring MVC 3,Java 6)

谢谢

4

1 回答 1

1

要在您真正需要时加载“嵌套”问题,您可以使用 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。

于 2012-07-14T09:06:36.690 回答