xinrong2019 / xinrong2019.github.io

My Blog
https://xinrong2019.github.io
1 stars 1 forks source link

20190711 日常开发记录1 #85

Open xinrong2019 opened 5 years ago

xinrong2019 commented 5 years ago

导出excel文件名支持国际化

response.setHeader("Content-disposition", "attachment; filename="
          + URLEncoder.encode(title,"utf-8")
              //处理URLEncoder.encode将空格编码为加号的bug
              .replaceAll("\\+", "%20") + ".xls");// 设定输出文件头
      response.setContentType("application/vnd.ms-excel;charset=utf-8");// 定义输出类型

Mybatis查询语句编写错误之查询返回语句多逗号,导致解析出错

t.status,
<include refid="statusText_statement"/>
from

其中<include refid="statusText_statement"/>的内容为:

<sql id="statusText_statement">
        (case when t.status = '1'  then  (select re.resourcevalue
        from sa_localeresource re where re.resourcekey = 'submitted.C' and re.languagecode = #{languageCode,jdbcType=VARCHAR})
        when t.status = '0' then (select re.resourcevalue
        from sa_localeresource re where re.resourcekey = 'pendingSubmission.C' and re.languagecode = #{languageCode,jdbcType=VARCHAR})
        end) statusText,
    </sql>

是一个SQL片段,但是以逗号结尾,整个语句拼起来,就不符合SQL语句的格式。

DWZ编写当前打开页面的样式和效果

$(function () {
        // debugger
        var $p = DWZ.context();
        var $select = $("select", $p);

        $select.each(function(){
            var $that = $(this);
            var $required_select = $that.attr("required");
            var $selectRequire = $that.siblings('span.select_required');
            if($required_select && !$selectRequire.length){
                // $select.after($("<span class='select_required'>",{
                //     "style":"color:red;position:absolute;left:235px;top:11px",
                //     "html":"*"}
                //     )
                // );
                $select.after($('<span class="select_required">').html('*').css({
                    color: 'red',
                    position: 'absolute',
                    left: '235px',
                    top: '11px'
                }));
            }
        })
    });

DWZ.context()可以获取到当前打开的标签页

自定义解析器实现参数绑定,增加方法注入,将含有 @CurrentUser 注解的方法参数注入当前登录用户

public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {
    @Override
    public boolean supportsParameter(MethodParameter parameter) {
        return parameter.getParameterType().isAssignableFrom(UserInfo.class)
                && parameter.hasParameterAnnotation(CurrentUser.class);
    }

    @Override
    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
        UserInfo user = (UserInfo) webRequest.getAttribute(CurrentUserConstants.CURRENT_USER, RequestAttributes.SCOPE_REQUEST);
        if (user != null) {
            return user;
        }
        throw new MissingServletRequestPartException(CurrentUserConstants.CURRENT_USER);
    }
}