上网找了下资料,参考着做了个
JSP页面,使用JSTL的标签。
- <tr>
- <tdwidth="10%">所属栏目</td>
- <tdwidth="90%"><selectname="columnInfo"id="columnInfo">
- <optionvalue="0">--请选择--</option>
- <c:forEachvar="columns"items="${columnsList}">
- <optionvalue="${columns.id}">${columns.name}</option>
- </c:forEach>
- </select><selectname="subColumnInfo"id="subColumnInfo"></select></td>
- </tr>
JS
- $(function(){
- $("#columnInfo").change(function(){
- $.getJSON("NewsAction!ajax",{parColumnId:$(this).val()},function(myJSON){
- varmyOptions="";
- for(vari=0;i<myJSON.length;i++){
- myOptions+='<optionvalue="'+myJSON[i].optionValue+'">'+
- myJSON[i].optionDisplay+'</option>';
- }
- $("#subColumnInfo").empty();
- $("#subColumnInfo").html(myOptions);
- });
- });
- $("#columnInfo").change();
- })
后台处理
- //处理AJAX级联请求
- publicvoidajax()throwsException{
- StringJSON_text="";
- if(parColumnId==0){
- JSON_text="[{optionValue:'0',optionDisplay:'--请选择--'}]";
- }else{
- List<Columns>subColumnList=columnService
- .findColumns(parColumnId);
- if(subColumnList.size()>0){
- JSON_text="[";
- for(inti=0;i<subColumnList.size();i++){
- Columnssub=subColumnList.get(i);
- JSON_text+="{optionValue:'"+sub.getId()
- +"',optionDisplay:'"+sub.getName()+"'}";
- if(i<subColumnList.size()-1){
- JSON_text+=",";
- }elseif(i==subColumnList.size()-1){
- JSON_text+="]";
- }
- }
- }
- }
- PrintWriterout=null;
- try{
- ServletActionContext.getResponse().setCharacterEncoding("UTF-8");
- out=ServletActionContext.getResponse().getWriter();
- }catch(IOExceptionex){
- ex.printStackTrace();
- }
- out.write(JSON_text);
- out.close();
- }