servlet如下:
- package forum.servlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.ArrayList;
- import java.util.Map;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import forum.huhai.beanService.MenuService;
- import forum.huhai.beanService.impl.MenuServiceImpl;
- public class GetMenus extends HttpServlet {
- /**
- *
- */
- private static final long serialVersionUID = 9142776995911654738L;
- @Override
- protected void service(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- class MenuForAjax{
- String id;
- String menuName;
- public MenuForAjax(String id,String menuName)
- {
- this.id=id;
- this.menuName=menuName;
- }
- public String toString()
- {
- return "{'id':'"+id+"','menuName':'"+menuName+"'}";
- }
- }
- class MenuList extends ArrayList<MenuForAjax>{
- /**
- *
- */
- private static final long serialVersionUID = 8591018782693731102L;
- @Override
- public String toString()
- {
- String str="[";
- for(MenuForAjax m:this)
- {
- str+=m+",";
- }
- return str.substring(0,str.length()-1)+"]";
- }
- }
- MenuService menuService=new MenuServiceImpl();
- Map<String,String> menus= menuService.getMenus();
- MenuList menuList=new MenuList();
- for(String key:menus.keySet())
- {
- menuList.add(new MenuForAjax(key,menus.get(key)));
- }
- response.setContentType("application/x-json");
- PrintWriter out= response.getWriter();
- out.print(menuList.toString());
- out.close();
- }
- }
javascript如下:
- $(document).ready(
- function()
- {
- //重置按钮清空FCKeditor中的内容
- $('#button_resetTopic').click(
- function()
- {
- var editor=FCKeditorAPI.GetInstance('content') ;
- editor.SetData('');
- }
- );
- //绑定版块选择框
- var getSections=function(mid)
- {
- $.post(
- 'servlet/getSections',
- {'menuID':mid},
- function(data)
- {
- var sectionSelect=$('#select_selectSection');
- sectionSelect.clearAll();
- var sections=eval(data);
- $.each(sections,
- function(i)
- {
- sectionSelect.addOption(sections[i].sectionName,sections[i].id);
- }
- );
- },
- 'json'
- );
- };
- $.post(
- 'servlet/getMenus',
- function(data)
- {
- var menuSelect=$('#select_selectMenu');
- var menus=eval(data);
- $.each(menus,
- function(i)
- {
- menuSelect.addOption(menus[i].menuName,menus[i].id);
- }
- );
- var menuID=menuSelect.getSelectedValue();
- getSections(menuID);
- menuSelect.change(
- function()
- {
- menuID=menuSelect.getSelectedValue();
- getSections(menuID);
- }
- );
- },
- 'json'
- );
- }
- );
注意:“response.setContentType("application/x-json");”,网上有的文章用的是“response.setContentType("text/xml;charset=utf-8");”,但我用“response.setContentType("text/xml;charset=utf-8");”时获得的是包含javascript的整个页面,而不是json数据,而用“response.setContentType("application/x-json");”获取到的就是JSON数据了。
文章来源:http://blog.csdn.net/huhai463127310/article/details/4901654