LayUI 心得1 (JS单独文件不能获取$(pageContext.request.contextPath)和JS中添加Date数据到数据库表中)

弄了一天的LayUI,虽然还是懵懵懂懂,也是在GitHub上Check下来的模板改,完成了基础的前后端增删改查。下面记录一下我碰到的问题吧。

获取$(pageContext.request.contextPath)

在JS中,我发现不能直接引用这个,所以导致我最开始的JS全是写在JSP里面 ,代码非常的乱。

在JSP中加一句

<input type="hidden" id="context" value="${pageContext.request.contextPath}">

然后我们就可以在对应的JS文件中直接去获取context,作为字符串来使用

var context= document.getElementById("context").getAttribute("value")

我也碰到了路径的问题,建议最好不要把JS文件放在Web-inf下,因为真的很难访问,我查了很多都没有看到,没有表情(很难受)。JSP的话可以通过Action在配置文件中通过视图解析器来进行访问。

获得对象的json字符串传回后台,无法转换Date型数据

前端的代码:

 form.on("submit(changeUser)",function(data){
        var index = layer.msg('提交中,请稍候',{icon: 16,time:false,shade:0.8});
        var userInfoHtml = '';
        userInfoHtml = {
            'id':$(".id").val(),
            'password':$(".password").val(),
            'created':$(".created").val(),
            'username' : $(".layui-disabled").val(),
            'sex' : data.field.sex,
            'status' : data.field.status,
            'phone' : $(".userPhone").val(),
            'email' : $(".userEmail").val()
        };

        var json=JSON.stringify(userInfoHtml);
        window.location=stringfy+"/user/editOneUser?json="+json;
        setTimeout(function(){
            layer.close(index);
            layer.msg("提交成功!");
        },2000);
        return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
    })

碰到的错误有很多  忘记截了

Request processing failed; nested exception is com.google.gson.JsonSyntaxException

一个就是Jackson好像不能解析,我就换成Gson.Gson之后就变成 java.lang.NumberFormatException

还是我的JavaBean实体类里的日期是Date类型,我换了一个实体类,把Date类型的那个参数换成String,类型的,就可以接收到我传的Json字符串了。在通过把收到的实体类TBUserTest数据加入原来的实体类TBUser中。

 public String editOneUser(String json) throws IOException, ParseException {
        //Jackson解析JSon字符串,因为Date类型,后面总会有我解决不了的错,
//        ObjectMapper objectMapper = new ObjectMapper();
//        TbUser tbUser=objectMapper.readValue(json, TbUser.class);
        Gson gson=new GsonBuilder()
                .setDateFormat("yyyy-MM-dd HH:mm:ss")
                .create();
        TBUserTest tbUser = gson.fromJson(json, TBUserTest.class);
        TbUser user=new TbUser();
        SimpleDateFormat sfEnd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat sfStart = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",java.util.Locale.ENGLISH) ;
        String format = sfEnd.format(sfStart.parse(tbUser.getCreated()));
        System.out.println(format);
        Date date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(format);
        user.setStatus(tbUser.getStatus());
        user.setCreated(date);
        user.setUpdated(new Date());
        user.setEmail(tbUser.getEmail());
        user.setId(tbUser.getId());
        user.setPassword(tbUser.getPassword());
        user.setUsername(tbUser.getUsername());
        user.setSex(tbUser.getSex());
        user.setPhone(tbUser.getPhone());
        userService.editUser(user);
        return "/page/user/userList";
    }
然后不是很完美的解决了我的最后一个问题



 

猜你喜欢

转载自blog.csdn.net/james23Chosen1/article/details/80032705