前端JSP与Spring MVC交互实用例子

java前后台交互:html、js、css,在从jsp的方向看,都不过是他生成的字符串而已,在URL参数传递时,只需要把字符串拼接成你想要的就好

参数传递与iframe局部刷新

  • spring mvc 配置为拦截 所有*.do请求
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE div PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;
  //使用绝对地址,避免神奇的路径BUG
%>
<link rel="stylesheet" type="text/css"
    href="<%=basePath%>/framework/css/bootstrap.min.css">
<script type="text/javascript"
    src="<%=basePath%>/framework/js/jquery.min.js"></script>
<script type="text/javascript"
    src="<%=basePath%>/framework/js/bootstrap.min.js"></script>

<title>实例</title>
<script type="text/javascript">

    var path = "<%=basePath%>";

    function tzPage(url) {
        //alert(url);
        $("#indexCon").attr("src", url);
    }

    function Go() {
        window.location.href = path + "/query.do?id=1&name='abc'"
    }
</script>
</head>
<body>

    <!-- 4总参数传递方法 -->

    <!--第一种:直接在URL后面加参数:-->
    localhost:8080/query.do?id=1&name="abc"


    <!--第二种:用超链接的方法传递参数:当点击超链接的时候,会被spring mvc query.do拦截,传递id 和name 两个参数过去-->
    <a href="<%=basePath%>/query.do?id=1&name='abc'">超链接传递参数</a>
</body>

<!--第三种:通过js方法传递:用户点击这个button按钮,触发onClick事件,执行Go()方法,方法内跳转被spring mvc query.do拦截,同时传递了id,和name两个参数过去-->
<input type="button" onclick="Go()" value="通过js方法传递参数" />

<!--第四种:通过form表单传递-->
<form action="<%=basePath%>/query.do?test=${test}" method="post">
    <!--注意如果method为get,action里面的连接不能带参数-->
    <input type="text" name="id" value="3" /> <input type="text"
        name="name" value="abc" />
    <button type="submit" value="通过传递参数" />
</form>

<!-- iframe局部刷新 -->
<div class="row">
    <div class="col-md-2">
        <ul class="nav nav-default nav-stacked">
            <li class="active"><a href='javaScript:'
                onclick="tzPage('<%=basePath%>/index.do')">主页</a></li>
            <li class="active"><a href='javaScript:'
                onclick="tzPage('<%=basePath%>/home.do')">home</a></li>
            <li class="active"><a href='javaScript:'
                onclick="tzPage('<%=basePath%>/address.do')">地址</a></li>
        </ul>
    </div>

    <div class="col-md-10">
        <iframe id="indexCon" width="100%" height="600px" frameborder="0"></iframe>
    </div>
</div>

</body>
</html>

异步调用

<script type="text/javascript">
//bootsrap 模态框事件触发的ajax操作,常后台获得数据填入模态框
$(function() {
$('#editUser').on(
    'show.bs.modal',
    function(event) {
      //alert(123);
      var button = $(event.relatedTarget) // Button that triggered the modal
      var id = button.data('id') // Extract info from data-* attributes
      $('.modal-title').text('New message to ' + recipient)

      $.ajax({
        type : "Get",
        url : path + "/user_manage/ajax.do?id=" + id,
        //data : $("#userFrom").serialize(), // 方法为post时提交的表单数据
        dataType : "json",
        success : function(data) {  // data:请求成功后后台返回的数据
          //alert(path)
          if (data.result == "true") {
            $(".modal-body input[name='id']").val(
                data.user.userId)
            $(".modal-body input[name='name']").val(
                data.user.name)
            $(".modal-body input[name='password']").val(
                data.user.password)
          }
        }
      });
    });
});
</script>
<button class="btn btn-sm btn-primary" data-toggle="modal"
  data-target="#editUser" data-id="${item[0]}">
  <i class="glyphicon glyphicon-pencil"></i> Edit
</button>

<!--弹出的模态框 -->
<div class="modal fade" id="editUser" tabindex="-1" role="dialog"
  aria-labelledby="editUser">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal"
          aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
        <h4 class="modal-title" id="eidtUsre">修改</h4>
      </div>

      <div class="modal-body">
        <form action="<%= basePath>/edit.do">
          <div class="form-group">
            <label for="id" class="control-label">id:</label> <input
              type="text" class="form-control disabled id" name="id">
          </div>
          <div class="form-group">
            <label for="name" class="control-label">name:</label> <input
              type="text" class="form-control" name="name">
          </div>
          <div class="form-group">
            <label for="password" class="control-label">password:</label> <input
              type="text" class="form-control" name="password">
          </div>
          <div class="form-group">
            <label for="role" class="control-label">role:</label> <select
              class="form-control" name="role">
              <option>学生</option>
              <option>迎新管理员</option>
              <option>校长</option>
              <option>老师</option>
            </select>
          </div>
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          <button type="submit" class="btn btn-primary">save</button>
        </form>
      </div>
    </div>
  </div>
</div>
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值