从控制器执行所有代码后,如何在Spring MVC中将数据标志从控制器获取到JSP

时间:2018-10-05 06:10:20

标签: javascript spring-mvc jsp

这是我的控制器代码。

@RequestMapping(value={VspCommonConstants.INTERVIEW_PANEL_MANAGER_URL+"/submitAssessmentform"}, method = RequestMethod.POST)
    public String submitAssessmentform(HttpServletRequest request,Model model) throws JsonParseException, JsonMappingException, IOException
    {
boolean saveFlag=false;
        try {


         saveFlag = interviewQuestionResultService.saveInterviewQuestionRemark(actualData, list,new Long(Appid),new Long(uInfo.getId()),existFlag,
                VspCommonConstants.getIpFromRequest(request),new Long(uInfo.getId()));


        } catch (Exception e) {
            saveFlag=false;
        }
        model.addAttribute("saveFlag",saveFlag);
        return view;
    }

在jsp上,我正在document.ready函数中使用“ saveFlag”,如下所示

$(document).ready(function() {
var saveFlagValue = $("#saveFlag").val();   
                         alert("saveflag:"+saveFlagValue); 

                        if(saveFlagValue == "true"){
                             /* swal("Error","Data saved successfully .","error");  */
                             swal({
                                html : true,
                                title : '<i></i>',
                                text : '<b>Data saved successfully.</b>'
                            }); 
                        } 

                    });

现在,我只想在控制器执行所有代码后才拥有这个saveFlag。但不幸的是,我的页面加载时即时通讯正在获取数据。我想在表单提交时获取此saveFlag并从控制器获取响应,而不是在启动时获取。请帮我解决问题。谢谢。

1 个答案:

答案 0 :(得分:0)

在JSP中,您应该将jQuery代码包装到此标记中:

<c:if test="${not empty saveFlag}">
    <script type="text/javascript">
        $(document).ready(function() {...}
    </script>
</c:if>

当用户第一次到达页面时,saveFlag为空,因为尚未调用控制器。结果,jQuery代码将无法执行。但是,提交表单后,saveFlagtruefalse,并显示成功/错误消息。