知识点部分
1.el表达式:取值本质上为内置对象中保存的值,setAtrruibute(_)根据name取值的,EL表达式利用的是服务器上的数据
2.ajax是客户端获取服务器上数据的方法
3.Java jsp Javascript jQuery ssm之间的区别
4.@Resource 和@Autowired之间的区别
4.前端之间传递参数的方法
方法一:
传参:window.location.href = "xxx?xx=xx&xx=xx";
接参(定义下列方法然后调用)
function getQueryVariable(variable){
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
方法二:
cookie:(21条消息) Cookie用法大全_唐策的博客-CSDN博客_cookie的使用
前端知识点
页面之间跳转:
1.跳转具体某一页:window.location.href = "xxx?xx=xx&xx=xx";
2.返回上一页:javascript:history.back(-1);
bootstrap-table分页插件:
1.资源链接
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/bootstrap-table/1.17.1/bootstrap-table.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/bootstrap-table/1.17.1/locale/bootstrap-table-zh-CN.min.js"></script>
2. 模板代码
$(function () {
$("#list").bootstrapTable({
url: "/list.do",//数据所在位置
striped: true,//显示行间隔
pageNumber: 1,//初始化加载几页
pagination: true,//是否分页
sidePagination: 'server',
pageSize: 10,
showRefresh: true,
queryParams: function (params) {
var temp = {
//当前第几页
offset: params.offset,
//每页显示的最大数量
pageNumber: params.limit
};
return temp;
},
columns: [
{
checkbox: true
},
{
title: "序号",
field: "roleId",
align: "center"
},
{
title: "角色名",
field: "roleName",
align: "center"
},
{
title: "状态",
field: "roleState",
align: "center",
formatter: function (value) {
return value == 1 ? "停用" : "启用";
}
},
{
title: "操作",
align: "center",
formatter: function (value, row) {
var state;
if (row.state == 0) {
state = "停用";
} else {
state = "启用";
}
return '<a href="editUser.jsp?roleId=' + row.roleId + '">编辑</a> ' +
'<a onclick="deleteUser(' + row.roleId + ')">' + state + '</a> ' +
'<a href="password.html?roleId=' + row.roleId + '">修改密码</a> ';
}
}
]
});
});
mabits--->.xml文件中 resultmap 的知识点问题:
<!--
1.resultMap作用是为了将我们的查询结果一一对应在一个特殊的实体类中
常见情况:1.一对一查询
2.一对多查询
2.type:查询结果封装在哪个实体类中
id:对应select标签中 resultMap 中的参数,二者对应,通过此对应在执行完 select 标签后找到对用的结果封装标签
: <result property="实体类中的属性名" column="查询语句结果中列名" />
: <collection property="实体类中封装“多”的属性名" javaType="list" ofType="多中单个的类型">
-->
<resultMap type="com.llh.bean.Role" id="roleMenusResultMap">
<!--<id property="id" column="roleId" />-->
<result property="roleId" column="roleId" />
<result property="roleName" column="roleName" />
<result property="roleState" column="roleState" />
<!-- 配置一对多的关系
property:填写pojo类中集合类类属性的名称
javaType:填写集合类型的名称
-->
<collection property="menus" javaType="list" ofType="com.llh.bean.Menu">
<!-- 配置主键,是关联Order的唯一标识 -->
<result property="menuId" column="menuId" />
<result property="menuName" column="menuName" />
<result property="menuState" column="menuState" />
</collection>
</resultMap>
多选+批量删除
前端生成列表的时候 在 form 标签中循环生成同 name 多个多选框组件,当我们在多选想要的选项之后,提交表单,会像后端发送 多选组件 name属性的数组,再后端接受数组,并根据数组特定的数据:
<input type="checkbox" name="ids" th:value="${u.uid}">
$(function () {
$("#checkAll").click(function () {
$(":checkbox[name='ids']").prop("checked", $(this).prop("checked"));
});
$("#btnDelete").click(function () {
if ($(":checked[name='ids']").length > 0) {
$("#df").submit();
} else {
alert('请选择要删除的记录')
}
});
})
找错
找错规律总结:
1.我们要学会可以在发生错误的时候,精准将错误在百度当中找出来对应的解决办法
2.我们在找错的时候,我们要采用五问法,追根溯源,找到出错问题的本质就是是什么。
3.我们要学会耐性的看控制台的飘红,一大段的飘红我们要学会在其中找见我们出错问题的关键点,可以精准的定位我们的错误到底在什么地方,从而可以对症下药。
找错知识点总结:
1.if判断中,else if [如果直接用else,会放大else中的错误,我们常常将其归结到其它中]中的错误
if (role.roleState == 0) {
$("input[id='state0']").attr("checked", true);
} else if (role.roleState == 1) {
$("input[id='state1']").attr("checked", true);
}
2.前端if(=/==)错误
反思规划部分
1.在编写前后端请求,以及前端展示数据的过程中,我们首先需要理清楚请求以及数据的来龙去脉
2.一个好的项目工具可以让我们找错以及编程时事半功倍,在使用这个编辑器等新工具时,我们必须要系统学习一下这个工具他的优点以及使用。