Commit bfe931739a02b1b8e56d9beb9a0c6a6cf3264ca9

Authored by 王通
1 parent 5e87d1bc

1.解决打jar包时刷新问题

src/main/java/com/bsth/filter/ResourceFilter.java
1   -package com.bsth.filter;
2   -
3   -import com.bsth.util.RequestUtils;
4   -import org.apache.commons.lang3.StringUtils;
5   -
6   -import javax.servlet.FilterChain;
7   -import javax.servlet.ServletException;
8   -import javax.servlet.http.HttpServletRequest;
9   -import javax.servlet.http.HttpServletResponse;
10   -import java.io.File;
11   -import java.io.IOException;
12   -
13   -/**
14   - * @author PanZhao
15   - * @ClassName: ResourceFilter
16   - * @Description: TODO(HTML片段过滤器)
17   - * @date 2016年3月19日 下午10:10:11
18   - */
19   -public class ResourceFilter extends BaseFilter {
20   -
21   - String[] params = new String[]{"no"};
22   -
23   - @Override
24   - public void doFilter(HttpServletRequest request,
25   - HttpServletResponse response, FilterChain chain)
26   - throws IOException, ServletException {
27   -
28   - String uri = request.getRequestURI();
29   - String origin = request.getParameter("origin");
30   - int len = uri.length();
31   - if (RequestUtils.isAjaxRequest(request)
32   - || (origin != null && origin.equals("real_control_iframe"))//来自线调 iframe 的请求
33   - || !uri.substring(len - 5, len).equals(".html")) {
34   - super.doFilter(request, response, chain);
35   - } else {
36   -
37   - String fPath = this.getClass().getResource("/").getPath()
38   - + "static/" + uri;
39   -
40   - File f = new File(fPath);
41   -
42   -
43   - if (f.exists() && f.isFile()) {
44   - request.getRequestDispatcher("/?initFragment=" + joinParam(request)).forward(request, response);
45   - } else
46   - response.sendRedirect("/");
47   - }
48   - }
49   -
50   - /**
51   - * 拼接参数
52   - *
53   - * @param request
54   - * @return
55   - */
56   - public String joinParam(HttpServletRequest request) {
57   -
58   - StringBuilder sb = new StringBuilder();
59   -
60   - String v, url = request.getRequestURI();
61   - for (String p : params) {
62   - v = request.getParameter(p);
63   - if (!StringUtils.isEmpty(v))
64   - sb.append("&" + p + "=" + v);
65   - }
66   -
67   - if (sb.length() > 0)
68   - url += "?" + sb.substring(1, sb.length());
69   - return url;
70   - }
71   -}
  1 +package com.bsth.filter;
  2 +
  3 +import com.bsth.util.RequestUtils;
  4 +import org.apache.commons.lang3.StringUtils;
  5 +import org.slf4j.Logger;
  6 +import org.slf4j.LoggerFactory;
  7 +
  8 +import javax.servlet.FilterChain;
  9 +import javax.servlet.ServletException;
  10 +import javax.servlet.http.HttpServletRequest;
  11 +import javax.servlet.http.HttpServletResponse;
  12 +import java.io.File;
  13 +import java.io.IOException;
  14 +
  15 +/**
  16 + * @author PanZhao
  17 + * @ClassName: ResourceFilter
  18 + * @Description: TODO(HTML片段过滤器)
  19 + * @date 2016年3月19日 下午10:10:11
  20 + */
  21 +public class ResourceFilter extends BaseFilter {
  22 +
  23 + private Logger log = LoggerFactory.getLogger(ResourceFilter.class);
  24 +
  25 + String[] params = new String[]{"no"};
  26 +
  27 + @Override
  28 + public void doFilter(HttpServletRequest request,
  29 + HttpServletResponse response, FilterChain chain)
  30 + throws IOException, ServletException {
  31 +
  32 + String uri = request.getRequestURI();
  33 + String origin = request.getParameter("origin");
  34 + int len = uri.length();
  35 + if (RequestUtils.isAjaxRequest(request)
  36 + || (origin != null && origin.equals("real_control_iframe"))//来自线调 iframe 的请求
  37 + || !uri.substring(len - 5, len).equals(".html")) {
  38 + log.error("ajax:" + RequestUtils.isAjaxRequest(request) + " origin:" + (origin != null && origin.equals("real_control_iframe")) + " uri:" + uri);
  39 + super.doFilter(request, response, chain);
  40 + } else {
  41 +
  42 +// String fPath = this.getClass().getResource("/").getPath()
  43 +// + "static" + uri;
  44 +//
  45 +// File f = new File(fPath);
  46 +//
  47 +//
  48 +// if (f.exists() && f.isFile()) {
  49 +// log.error("joinParam:" + joinParam(request));
  50 +// request.getRequestDispatcher("/?initFragment=" + joinParam(request)).forward(request, response);
  51 +// } else {
  52 +// log.error("sendRedirect:" + fPath);
  53 +// response.sendRedirect("/");
  54 +// }
  55 + request.getRequestDispatcher("/?initFragment=" + joinParam(request)).forward(request, response);
  56 + }
  57 + }
  58 +
  59 + /**
  60 + * 拼接参数
  61 + *
  62 + * @param request
  63 + * @return
  64 + */
  65 + public String joinParam(HttpServletRequest request) {
  66 +
  67 + StringBuilder sb = new StringBuilder();
  68 +
  69 + String v, url = request.getRequestURI();
  70 + for (String p : params) {
  71 + v = request.getParameter(p);
  72 + if (!StringUtils.isEmpty(v))
  73 + sb.append("&" + p + "=" + v);
  74 + }
  75 +
  76 + if (sb.length() > 0)
  77 + url += "?" + sb.substring(1, sb.length());
  78 + return url;
  79 + }
  80 +}
... ...
src/main/resources/static/index.html
... ... @@ -545,6 +545,11 @@
545 545 dictionaryUtils.transformDom(dicts);
546 546 });
547 547  
  548 + $(document).on('pjax:error', function (e) {
  549 + alert('无效的url');
  550 + e.preventDefault();
  551 + });
  552 +
548 553 function loadPage(url) {
549 554 $.pjax({url: url, container: pjaxContainer})
550 555 }
... ...