点了添加按钮,跳转到表单页面,左边的子菜单选中状态消失了。
menu页面中的html如下:
添加按钮的html如下:
添加文章
控制器代码如下:public class ArticleAdminController extends BaseController {
@Inject
ArticleAdminService srv;
@Inject
ArticleSubmenuAdminService submenuSrv;
public void index(){
keepPara("menu");
String menuCode = getPara("menu","toutiao");
int pageIndex = getParaToInt("p", 1);
Page artPage = srv.paginate(menuCode,pageIndex);
setAttr("artPage", artPage);
render("index.html");
}
/**
* 创建
*/
public void add() {
keepPara("menucode");
String menuCode = getPara("menucode");
setAttr("submenus", submenuSrv.findByMenuCode(menuCode));
render("add_edit.html");
}
/**
* 提交创建
*/
public void save() {
keepPara("menucode");
Article art = getBean(Article.class,"article");
Ret ret = srv.save(art);
renderJson(ret);
}
/**
* 修改
*/
public void edit() {
keepPara("menucode");
keepPara("p");// 保持住分页的页号,便于在 ajax 提交后跳转到当前数据所在的页
setAttr("article", srv.edit(getParaToInt("id")));
setAttr("submenus", submenuSrv.findByMenuCode(getPara("menucode")));
render("add_edit.html");
}
/**
* 提交修改
*/
public void update() {
keepPara("menucode");
Article art = getBean(Article.class,"article");
Ret ret = srv.update(art);
renderJson(ret);
}
/**
* 锁定
*/
public void lock() {
Ret ret = srv.lock(getParaToInt("id"));
renderJson(ret);
}
/**
* 解除锁定
*/
public void unlock() {
Ret ret = srv.unlock(getParaToInt("id"));
renderJson(ret);
}
/**
* 删除
*/
public void delete() {
Ret ret = srv.delete(getParaToInt("id"));
renderJson(ret);
}
}
-----------------------------------------------------------
经过单步调试,找到问题原因:
点击【添加按钮】并加载表单后,jfinal-admin.js在进行反向匹配菜单时,是根据按钮action的pathName进行的,如果pathName和菜单href匹配不上,则无法选中。