2012-07-12 63 views
0

我有一个列表中有一个定义在其中的另一个列表。因此,假设它们是一个反射对象(列表内列表内的列表......等等)。在我看来,我从一个YES/NO问题开始,基于YES,我必须展示一组数据。再次当用户选择YES显示设置时。在单选按钮选择设计上的渲染列表

我可以通过构造问题并在呈现给客户端之前隐藏它们来实现此目的,并且当用户选中YES时,我启用该集合。但是我正在使用的集合非常庞大,因此我不想渲染收集和隐藏,如果这是没有用的。我想知道是否有更好的方式来实现这一目标。(Spring MVC的3,Java 6中)

感谢

+0

我建议看看使用ajax返回一个json对象,然后你可以构造你的元素。 – MrOBrian 2012-07-12 18:33:46

回答

1

要只加载“嵌套”的问题,当你真正需要它,你可以使用AJAX。如果你正在使用jQuery

public class Question { 

    private int id; 
    private String text; 

    // ... 

} 
在你的页面

然后: 例如,在你的Spring MVC控制器,你可以实现这样的方法:

@RequestMapping("/nestedQuestions") 
public @ResponseBody List<Question> getNestedQuestions(@RequestParam("parentQuestion") int id){ 
    return yourService.getChildrenQuestionsFor(id); 
} 

Question可能是一个简单的对象

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

可以从您的单选按钮onChange事件处理函数调用getNestedQuestions函数,将父项问题ID。