当前位置: 首页 > 知识库问答 >
问题:

在spring MVC中,如何在同一页面上显示成功消息(从数据库验证数据后)?

洪祺
2023-03-14

我是SpringMVC的新手。我正在从.jsp表单中获取一些数据,并从数据库中验证相同的数据,如果输入的数据已经存在,那么我想打印一条消息:“已经存在,输入不同的数据”,否则是“数据添加成功”,但是在用户输入数据的同一网页上,而不是在一个单独的网页上。

_____________
**form.jsp**
_____________
<html>
<head>
<meta charset="ISO-8859-1">
</head>
<body>
<form action="signup.op" method ="post">
<input type = "text" name="nm">
<input type = "password" name="pwd">
<input type = "num" name = "mobileNumber">
<input type = "submit" value="press"><br>
</form>
</body>
</html>

-----------------------------
_________________
**Controller class**
_________________
-------------------------------------------------------------------------------
**NOTE**:Before reading this code I want to clear you pople that in this Controller I am using *ModelAndView* to show the message on a separate response.jsp page but actually I don't want it.
------------------------------------------------------------------------------

    @Controller
    @RequestMapping("/")
    public class Controller {

        @Autowired
        private Services services;

        //constructor
        public Controller() {
    System.out.println(getClass().getName());
        }

        @RequestMapping(value="signup.op", method = RequestMethod.POST)
        public ModelAndView signup( DTO dto) {

        /*don't confuse from the below line of code I am just storing a String
        type of value("yes" or "no") in "returnFromServices" variable and based on 
        this value I want to send the message(that is mentioned above) on the same 
         web page*/
         String returnFromServices = services.saveStudentRecords(dto);

        ModelAndView modelAndView = new ModelAndView("response.jsp");
        if(returnFromServices.equals("yes")) {
    modelAndView.addObject("message", "ALREADY PRESENT ENTER DIFFERENT DATA");
            return modelAndView;
        }

            modelAndView.addObject("message","DATA ADDED SUCCESSFULLY" );
            return modelAndView;
       }
    }

共有1个答案

公羊光明
2023-03-14

可以使用ajax调用Spring MVC中的controller mathod,并使用bootstrap模式在同一页面上显示响应消息

这是代码段,

Ajax调用

function postAjaxWithJSONData(url,formId,callback){
     var data = JSON.stringify(jQuery(formId).serialize());
     $.ajax({ 
             url: url,    
             type: "POST",
             data:$(formId).serializeObject(),
             dataType : "json",
             success: function(respose) {
                    if(respose.status == 'error') {
                        showAjaxResponseMessage(respose);
                    } else {
                        callback(respose);
                        showAjaxResponseMessage(respose);
                    }
                },
             error: function(){
                 console.log('error');
             }
         });
}

function showAjaxResponseMessage(response) {
     $("#message").text(response.message);
     $('#message-modal').modal('show');
}

function editUser() {
    var editCallback = function(){
        $('#myModal').modal('hide');
        //displayDashboardContent();
    };
    postAjaxWithJSONData('editUser','#editUser',editCallback);
}
 <form id="editUser">
    <div class="modal-body">
       <div class="form-group">
          <input type="hidden" class="form-control" name="id" value=""/>
          <br/>

          <label for="username" class="form-control-label">First Name</label>
          <input type="text" class="form-control" name="firstName" value=""/>
          <br/>
      </div>

      <div class="form-group">
          <label for="username" class="form-control-label">Last Name</label>
          <input type="text" class="form-control" name="lastName" value=""/>
          <br/>
      </div>

      <div class="form-group">
          <label for="username" class="form-control-label" >Username</label>
          <input type="text" class="form-control" name="userName" value="" readonly/>
          <br/>
      </div>
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-primary" onclick="editUser()">Save</button>
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  </div>
</form>   
     <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
           <button type="button" class="close" data-dismiss="modal">&times;         </button>
           <h4 class="modal-title">Message</h4>
        </div>
        <div class="modal-body">
           <p id="message"></p>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
     </div>
  </div>
@RequestMapping(value = "editUser", method = RequestMethod.POST)
public @ResponseBody ResponseVO editUser(@ModelAttribute(value = "userVO") UserDataVO userDataVO) {
    logger.debug("in editUser controller");
    ResponseVO responseVO = userServiceImpl.editUser(userDataVO);
    return responseVO;
}
 类似资料:
  • 问题内容: 假设我有时从服务器获取空数据,我想在DataTables中显示No Data found消息。这怎么可能? 问题答案: 如果要自定义在空表上显示的消息,请使用以下命令: 从Datatable 1.10开始,您可以执行以下操作: 有关表的 完整 可用数据表的 定制消息 ,请查看以下链接参考/选项/语言

  • 所以,数据库(MySQL)中有一个包含姓名和照片(blob)的表。在我的网页应用程序的主页上有一个按钮,点击它后-它必须是另一个页面,包含数据库的所有结果。我使用servlet/jsp/、jdbc和MVC模式,我有带有字段名称和照片(字节[])的实体User,我有返回List的DAO类,我想在结果页面上从数据库中检索每个用户照片和照片附近的他的名字。 如何使用 servlet/jsp 执行此操作?

  • 在主页上,我有一个按钮,用activeform调用引导模式。在提交此表单时,在我的数据库中添加新行。但是我看不出一个成功的消息,无论是在这个模态还是在主页上。取而代之的是,我进入mysite.ru/category/create页,上面有白色屏幕和对话框消息的文本(“对话框内容在这里......”)。如何不重定向用户在其他页面?只需在主页上关闭模态和/或重定向,并在此处显示关于成功添加行的闪存信息

  • 问题内容: 如何在JSP页面中从数据库检索和显示图像? 问题答案: 让我们逐步查看会发生什么: JSP基本上是一种视图技术,应该可以生成HTML输出。 要以HTML显示图像,你需要HTML 元素。 要使其定位图像,你需要指定其属性。 该属性需要指向有效的URL,而不是本地磁盘文件系统路径,因为当服务器和客户端在物理上不同的计算机上运行时,该路径将永远无法工作。 图片网址需要在请求路径(例如)中或作

  • 我在jsp页面中有一个html表单,在提交时将被发送到servlet。。在servlet中执行了这些函数之后,我再次将其重定向到同一个jsp页面,从该页面调用它,并显示一条成功消息,现在显示在同一个jsp页面上,但我不知道如何做到这一点。。。 这是我的jsp表单代码。。 这是我的servlet重定向代码。

  • 这只是为了漏洞测试的目的 只是为了找到克服XSS攻击的方法 如果textbox字段为空,我将尝试显示错误消息。 但是当我单击submit按钮时,它只在另一个(db_connection.php)页面上显示错误消息,尽管它没有将数据插入到我的数据库中。我希望它在与表单相同的页面上显示错误消息。 这是我的index.php 这是我的db_connection.php