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,6 +545,11 @@
545 dictionaryUtils.transformDom(dicts); 545 dictionaryUtils.transformDom(dicts);
546 }); 546 });
547 547
  548 + $(document).on('pjax:error', function (e) {
  549 + alert('无效的url');
  550 + e.preventDefault();
  551 + });
  552 +
548 function loadPage(url) { 553 function loadPage(url) {
549 $.pjax({url: url, container: pjaxContainer}) 554 $.pjax({url: url, container: pjaxContainer})
550 } 555 }