• shopxx研究


    1、启动后,在tomcat/temp 下,生成cache和index文件夹。cache里面是类路径下ehcache.xml定义的缓存  index里面是 article 和 product的索引

    [SHOP++] 2015-12-29 20:01:07 [ WARN] (DirectoryProviderHelper.java:258) - Index directory not found, creating: 'C:JavaTomcat7 emplocalhost_shopxxindex'
    [SHOP++] 2015-12-29 20:01:07 [ WARN] (DirectoryProviderHelper.java:258) - Index directory not found, creating: 'C:JavaTomcat7 emplocalhost_shopxxindex et.shopxx.entity.Article'
    [SHOP++] 2015-12-29 20:01:07 [ WARN] (DirectoryProviderHelper.java:258) - Index directory not found, creating: 'C:JavaTomcat7 emplocalhost_shopxxindex et.shopxx.entity.Product'

    2 注册

    前台 :register.jhtml -> controller.shop -> RegisterController.java  

    相关实体:Member  MemberAttribute

    自定义指令 member_attribute_list -> memberAttributeListDirective

    boolean useCache = useCache(env, params);
    String cacheRegion = getCacheRegion(env, params);

    if (useCache) {
    memberAttributes = memberAttributeService.findList(cacheRegion);
    } else {
    memberAttributes = memberAttributeService.findList();
    }

    返回注册项列表 List<MemberAttribute> memberAttributes; 供 register.jhtml展示注册项

    model.addAttribute("genders", Gender.values());

    后台:member_attribute/list.jhtml 可以自定义 添加 修改会员注册项 类型包括文本 单选项 多选项

     关于枚举

    java中 memberAttribute.getType() == Type.select

    ftl 中 memberAttribute.type == "name"

    select  name 都是枚举Type中的值, 同时还定义了属性 private Type type;

    3、未登录拦截 public class MemberInterceptor extends HandlerInterceptorAdapter

    Principal principal = (Principal) session.getAttribute(Member.PRINCIPAL_ATTRIBUTE_NAME);

    String requestType = request.getHeader("X-Requested-With");  // 判断请求是否是来自ajax请求,若是ajax请求 requestType不为空。

    // 在没有登陆的情况下,来源的请求是 ajax 请求 ,设置禁止访问 SC_FORBIDDEN 即403错误。也即ajax请求不到数据。
    if (requestType != null && requestType.equalsIgnoreCase("XMLHttpRequest")) {
      response.addHeader("loginStatus", "accessDenied");
      response.sendError(HttpServletResponse.SC_FORBIDDEN);
      return false;
    } else {  // 在没有登陆的情况下,来源的请求不是ajax请求,是正常请求,就执行跳转到登陆页面。

      if (request.getMethod().equalsIgnoreCase("GET")) {
      String redirectUrl = request.getQueryString() != null ? request.getRequestURI() + "?" + request.getQueryString() : request.getRequestURI();
      response.sendRedirect(request.getContextPath() + loginUrl + "?" + REDIRECT_URL_PARAMETER_NAME + "=" + URLEncoder.encode(redirectUrl, urlEscapingCharset));
      } else {
      response.sendRedirect(request.getContextPath() + loginUrl);
      }
      return false;
    }

  • 相关阅读:
    线性代数思维导图——3.向量
    微分中值定理的基础题型总结
    构造函数
    Python课程笔记(七)
    0241. Different Ways to Add Parentheses (M)
    0014. Longest Common Prefix (E)
    0013. Roman to Integer (E)
    0011. Container With Most Water (M)
    0010. Regular Expression Matching (H)
    0012. Integer to Roman (M)
  • 原文地址:https://www.cnblogs.com/appzhang/p/5037096.html
Copyright © 2020-2023  润新知