1、前台发送请求到后台:
页面上的按钮
<button style="width:150px" class="btn btn-success" οnclick="urlAdd()">添加角色</button>
js中的函数通过ajax发送Url可以直接访问后台
function urlAdd() {
var url = "urlAdd.json?urlType=" + urlType + "&&urlResource=" + urlResource + "&¤tPage=" + currentPage+"&&menuName="+menuName;
$.ajax({
url: url,// 跳转到 action
success: function (data) {
$("#addDialog").dialog("close");
if (data.status) {
alert("添加成功");
location.reload();
}
else {
alert("添加失败,角色 " + urlType + " 已存在。");
}
},
error: function () {
alert("异常!");
}
});
}
后台拦截URL
@RequestMapping("urlAdd.json")
public String urlAdd(ModelMap modelMap, HttpServletRequest request) {
String urlType = request.getParameter("urlType");
String urlResource = request.getParameter("urlResource");
String menuName = request.getParameter("menuName");
if (urlType == null || "".equals(urlType)) {
urlType = "默认角色";
}
if (urlResource == null) {
urlResource = "";
}
String[] urlList = urlResource.split(";");
String[] menuList = menuName.split(";");
int len = urlList.length;
boolean bool = false;
//首先看角色是否重复,角色名不可重复
int countRole = filterService.confirmRole(urlType);
if(countRole>0)
{
modelMap.put("status", bool);
modelMap.put("menu", urlType);
return "JSON";
}
//先添加角色表,因为角色只要添加一次,资源添加多次。
bool = filterService.psRoleAdd(urlType);
if(bool)//角色插入成功,再插入资源
{
for(int i=0;i<len;i++)
{
String resouceId = filterService.confirmUrlResource(urlList[i]);//确认这个url是否存在
if(resouceId.equals(""))//没有这个资源需添加
{
bool = filterService.urlAdd(urlType, urlList[i], menuList[i], true);
}
else//只需添加role_resource关系表
{
bool = filterService.urlAdd(urlType, urlList[i], menuList[i], false);
}
}
}
modelMap.put("status", bool);
return "JSON";
}
将结果放在modelMap中,然后前台的js通过类似于data.status获取后台传给前台的数据。
2、后台数据直接传给前台界面:
当前台直接发送/index.do的URL表示登录的时候,
后台首先进行拦截
@RequestMapping("/index.do")
public String index(ModelMap modelMap, HttpServletRequest request) {
map.addAttribute("USER_GENDER", gender);
map.addAttribute("USER_ID", name);
map.addAttribute("AUTHORITIES", authorities);
map.put("component", "indexComponent");
return "/admin/index.ftl";
}
//上面的map用addAttribute和put效果是一样的
这时前台可以直接用map中的值,方式如下${AUTHORITIES}:
<input type="text" id="authorize" style="display:none;" value="<#if AUTHORITIES?exists>${AUTHORITIES}<#else></#if>"/>