JAVA 提交form表单 后台获取不到参数及乱码问题

2021-02-16 12:19

阅读:443

id="Label3" contentScore="570">

标签:javap   NPU   edit   进入   val   rac   cli   rip   tor   

        
class="form-horizontal m-t" id="commentForm" method="post" enctype="multipart/form-data">
class="form-group">
class="col-sm-6"> "newsTitle" name="newsTitle" minlength="2" type="text" class="form-control" required="" aria-required="true" value="">
class="form-group">
class="col-sm-6"> "keywords" name="keywords" minlength="2" type="text" class="form-control" required="" aria-required="true" value="">
class="form-group">
class="col-sm-6"> "description" name="description" minlength="2" type="text" class="form-control" required="" aria-required="true" value="">
class="form-group">
class="col-sm-6">
class="form-group">
class="col-sm-6 col-sm-offset-2">

这是我的表单提交代码,当然在提交的手利用js来改变acction,重点是提交进入控制器之后居然得不到参数,我后台是利用对象直接获取的参数

    @RequestMapping(value="/AddorEdit",produces = {"application/text;charset=UTF-8"})
    public String AddorEdit(NewsManager model,HttpServletRequest request)throws ServletException, IOException
    {
        request.setCharacterEncoding("UTF-8");
        String userName = request.getParameter("newsTitle");
        var user = ManageProvider.getProvider().Current(request);
        if (user==null||user.getId()==0)
        {
            return "login/login";
        }
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        java.util.Date time=null;
        try {
            time= df.parse(df.format(new Date()));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        model.setCreateDate(time);
        model.setCreateName(user.getUserName());
        model.setState(1);
        ApplicationContext ctx = new ClassPathXmlApplicationContext(
                "file:D:/Program Files/JetBrains/javaproject08/web/WEB-INF/applicationContext.xml");
        NewsManagerServiceImpl newsmanagerserviceimpl=(NewsManagerServiceImpl)ctx.getBean("newsManagerservice");
        newsmanagerserviceimpl.insertNewsManager(model);
        return "news/newsindex";
    }

解决办法:前台页面代码中多了个

enctype="multipart/form-data"这个属性 去掉了就可以了
然后就是传过来的参数乱码了

技术图片

 

 

技术图片

 

 我在控制器添加

@RequestMapping(value="/AddorEdit",produces = {"application/text;charset=UTF-8"}),页面也添加了编码


还有许多网上提到的
request.setCharacterEncoding("UTF-8");说是加段这个就可以了,但在我的项目中没用
最后再网站上看到了在web.xml中加入这样一段代码(推荐放在最前面,我的就是这样好的)完美解决了
    characterEncodingFilterclass>org.springframework.web.filter.CharacterEncodingFilterclass>
        encodingUTF-8forceEncodingtruecharacterEncodingFilter/*

技术图片

 

 

 

JAVA 提交form表单 后台获取不到参数及乱码问题

标签:javap   NPU   edit   进入   val   rac   cli   rip   tor   

原文地址:https://www.cnblogs.com/Argus-sqh/p/12707520.html


评论


亲,登录后才可以留言!